マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • nmakeツールの機能的な後継
  • Visual StudioプロジェクトをIDE無しでビルドできる。
  • タスクを利用すると種々の作業を自動化できる。

タスク

  • タスクを利用すると種々の作業を自動化できる。
  • プロジェクトファイルの<Target>要素にタスクを記載する。

標準タスク

Communityタスク

メモ

MSbuild 14.0

  • Visual Stadio 2015ではMSbuild 14.0がインストール&利用される。
    • C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
    • C:\Program Files (x86)\MSBuild\14.0

MSbuild 15.0

  • Visual Stadio 2017ではMSbuild 15.0がインストール&利用される。
    • C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
    • C:\Program Files (x86)\MSBuild\15.0
  • NuGetのバージョンは、MSbuild 14.0では3.5までとなっており、MSbuild 15.0では4.0以上が必要。
    • 以下の文字列を使用して検索すると情報が見つかる。
      Failed to load msbuild Toolset Could not load file or assembly 'Microsoft.Build, Version=14.0.0.0

トラブルシュート

devenvでのビルドと比べ、チラホラと、エラーが起きる。

ビルド時

ビルド時に「error MSB4019 ... `MSBuild\...\Microsoft.WebApplication.targets` was not found...」が発生

最近、Visual Studio 2017のMSBuild(v15.0)に標準同梱されていなくて、
Webアプリケーションのビルドに失敗するケースが増えているようです。

ビルド時に「due to its being in the Internet or Restricted zone or having the mark of the web on the file.」が発生

GitHubから「Download ZIP」して、Explorerで解凍した場合など、この問題が起きます。

ビルド時に「error CS1519 Unexpected symbol 'xxxxx' in class, struct, or interface member declaration.」が発生

C#のバージョン(コンパイラ)の問題らしいです。

NuGet使用時

Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生

MSBuildでのビルドに必要なSDKがインストールされていなくてエラーになるというケース。

Nuget使用時に「warning MSB3247 Found conflicts between different versions of the same dependent assembly.」が発生

  • 恐らく、NuGet導入により多くの人が遭遇している問題。
  • バインディング リダイレクトによって対応可能。

Nuget使用時に「warning NU1701 Package 'xxxxx' was restored using 'yyyyy' instead of the project target framework 'zzzzz'...」が発生

  • netからnetcoreappのパッケージを参照した場合などに発生する。
  • また、netとnetstandardが混在している場合、net側でnetstandardを
    サポートしていないアセンブリを使用しているだけで発生する。

参考


Tags: :.NET開発, :テスト, :デバッグ, :デプロイ, :ツール類, :CI


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-20 (木) 16:31:28 (7h)