次の方法で共有


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 値がレジストリに設定されなくなりました。

  • 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.propsDirectory.Build.targets は、ディレクトリの下にあるプロジェクトにカスタマイズを提供するユーザー定義ファイルです。 プロパティ ImportDirectoryBuildPropsfalse に設定されていない限り、Directory.Build.propsMicrosoft.Common.props から自動的にインポートされます。 プロパティ ImportDirectoryBuildTargetsfalse に設定されていない限り、Directory.Build.targets は Microsoft.Common.targets によって自動的にインポートされます。
  • 現在の属性リストと競合しない名前のメタデータは、必要に応じて属性として表現できます。 詳細については、「 Item 要素」を参照してください。

新しいプロパティ関数

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