MSBuild 15 の新機能

MSBuild は現在 .NET Core SDK の一部として利用でき、Windows、macOS、Linux で .NET Core プロジェクトをビルドできます。

変更されたパス

MSBuild は Visual Studio の各バージョンのフォルダーにインストールされます。 たとえば、C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild のようにします。 次の PowerShell モジュールを使用して MSBuild を検索することもできます: vssetup.powershell

MSBuild は、グローバル アセンブリ キャッシュにインストールされなくなりました。 MSBuild をプログラムで参照するには、NuGet パッケージを使用します。

変更されたプロパティ

新しいバージョン番号に伴い、次の MSBuild プロパティが更新されました。

  • MSBuildToolsVersion: このバージョンのツールでは 15.0 になります。 アセンブリのバージョンは 15.1.0.0 です。

  • MSBuildToolsPath: 固定の場所はなくなりました。 既定では、Visual Studio のインストール場所に相対的な MSBuild\15.0\Bin フォルダーにありますが、Visual Studio のインストール場所はインストール時に変更できます。

  • ToolsVersion: 値はレジストリで設定されなくなりました。

  • SDK35ToolsPathSDK40ToolsPath: これらのプロパティは、このバージョンの Visual Studio に含まれている .NET Framework SDK を指しています (たとえば、4.X ツールの場合は 10.0A など)。

更新

  • Project 要素には新しい SDK 属性があります。 Xmlns 属性も省略できます。
  • ターゲットの外部の Item 要素には新しい Update 属性があります。 また、Remove 属性に対する制限も排除されました。
  • Directory.Build.props は、ディレクトリの下のプロジェクトをカスタマイズできるようにする、ユーザー定義のファイルです。 ImportDirectoryBuildTargets プロパティを false に設定しない限り、このファイルは Microsoft.Common.props から自動的にインポートされます。 Directory.Build.targets は Microsoft.Common.targets によってインポートされます。
  • 現行の属性リストと競合しない名前のメタデータを任意で属性として表現できます。 詳しくは、Item 要素に関する記事をご覧ください。

新しいプロパティ関数

  • EnsureTrailingSlash は、まだ存在しない場合に末尾のスラッシュをパスに追加します。
  • NormalizePath はパス要素を結合し、出力文字列に現在のオペレーティング システムの適切なディレクトリ区切り文字が含まれることを確認します。
  • NormalizeDirectory はパス要素を結合し、末尾のスラッシュを確認し、出力文字列に現在のオペレーティング システムの適切なディレクトリ区切り文字が含まれることを確認します。
  • GetPathOfFileAbove は、直前のファイルのパスを返します。 その機能は <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> の呼び出しと同じです

関連項目

MSBuild