Share via


MSBuild 17.0 の新機能

この記事では、MSBuild 17.0 での重要な更新について説明します。 詳細なリリース ノートについては、「MSBuild 17.0.0」をご覧ください。

MSBuild 17.0 は Visual Studio 2022 および .NET 6.0 に付属しています。

変更されたパス

MSBuild は Visual Studio の各バージョンの \Current フォルダーにインストールされ、実行可能ファイルは \Bin サブフォルダーにインストールされます。 たとえば、Visual Studio 2022 Community でインストールされた MSBuild.exe へのパスは C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe です。次の PowerShell モジュールを使用して MSBuild を配置することもできます: vssetup.powershell

変更されたプロパティ

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

  • MSBuildToolsVersion: このバージョンのツールでは "Current" のままです。 アセンブリのバージョンは、Visual Studio 2017 および Visual Studio 2019 と同じ (15.1.0.0) です。

  • VisualStudioVersion: このバージョンのツールでは "17.0" になります。

64 ビット

MSBuild.exe には、以前、32 ビットおよび 64 ビットの両方のバージョンがありましたが、現在は 64 ビット バージョンが既定値になっています。 Visual Studio 2022 では、すべてのビルドに 64 ビット バージョンの MSBuild が使用されます。 32 ビット バージョンは引き続き使用できますが、すべてのビルドを 64 ビット バージョンに切り替えすることをお勧めします。

タスク所有者とって、このことは、MSBuild によるタスクの読み込み時に、64 ビット プロセスでその読み込みが試行されることを意味します。 64 ビット プロセスで実行されるようにタスクの更新を検討することをお勧めします。ただし、互換性を考慮して、UsingTask でのみタスクが 32 ビットで実行されるように MSBuild に指示することができます。

パフォーマンスの向上

MSBuild は高速です。 このリリースは、多くの一般的なシナリオのパフォーマンスを向上させることに焦点が置かれています。 MSBuild 17.0 では、より大きなプロジェクトをより高速にビルドできます。

.NET のバージョン

MSBuild (および Visual Studio) では、.NET Framework 4.7.2 および .NET 6.0 がターゲットとされるようになりました。 MSBuild API の新しい機能を使用したい場合は、ご利用のアセンブリもアップグレードする必要があります。ただし、既存のコードは引き続き機能します。

ログ

バイナリ ログはサイズがより小さく、より多くの情報を含んでいます。

大きな変更点

  • メソッド GetType() は、プロパティ関数で呼び出すことができなくなりました。
  • MSBuild for .NET のターゲットは、.NET 6 です。

その他の動作の変更

  • MSBuildCopyContentTransitively が既定でオンになり、インクリメンタル ビルドでの出力フォルダーの一貫性が保証されます。

このバージョンのその他の変更については、詳細なリリース ノートを参照してください。また、オプトアウトが可能な MSBuild バージョンの変更については、「変更ウェーブ 」を参照してください。