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
値がレジストリに設定されなくなりました。SDK35ToolsPath
プロパティとSDK40ToolsPath
プロパティは、このバージョンの Visual Studio にパッケージ化された .NET Framework SDK を指します (たとえば、4.X ツールの場合は 10.0A)。
最新情報
-
Project 要素 には、新しい
SDK
属性があります。 また、Xmlns
属性は省略可能になりました。SDK
属性の詳細については、「方法: MSBuild プロジェクト SDK、パッケージ、メタパッケージ、フレームワークを使用する」および「.NET Core の csproj 形式への追加」を参照してください。 - ターゲットの外部にある Item 要素には、新しい
Update
属性があります。 また、Remove
属性に対する制限も排除されました。 -
Directory.Build.props と Directory.Build.targets は、ディレクトリの下にあるプロジェクトにカスタマイズを提供するユーザー定義ファイルです。 プロパティ
ImportDirectoryBuildProps
がfalse
に設定されていない限り、Directory.Build.props は Microsoft.Common.props から自動的にインポートされます。 プロパティImportDirectoryBuildTargets
がfalse
に設定されていない限り、Directory.Build.targets は Microsoft.Common.targets によって自動的にインポートされます。 - 現在の属性リストと競合しない名前のメタデータは、必要に応じて属性として表現できます。 詳細については、「 Item 要素」を参照してください。
新しいプロパティ関数
-
EnsureTrailingSlash
パスがまだ存在しない場合は、末尾のスラッシュをパスに追加します。 -
NormalizePath
はパス要素を結合し、出力文字列に現在のオペレーティング システムの正しいディレクトリ区切り文字が含まれるようにします。 -
NormalizeDirectory
はパス要素を結合し、末尾にスラッシュを付け、出力文字列に現在のオペレーティング システムの正しいディレクトリ区切り文字が含まれるようにします。 -
GetPathOfFileAbove
は、このファイルのすぐ前にあるファイルのパスを返します。 これは、関数的に呼び出しと同等です<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />