次の方法で共有


MSBuild 17 の新機能

この記事では、MSBuild 17.0 の重要な更新プログラムについて説明します。 各バージョンの詳細なリリース ノートについては、MSBuild リリース を参照してください。

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 は "現在" のままです。 アセンブリのバージョンは、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 機能を使用する場合は、アセンブリもアップグレードする必要がありますが、既存のコードは引き続き機能します。

ログ

バイナリ ログは小さく、より多くの情報が含まれています。

MSBuild 17.8 以降では、コンソール出力を改善するために、新しいターミナル ロガー (コマンド ラインの-terminalLogger または -tl オプション) を試してください。

重大な変更

  • GetType() メソッドは、プロパティ関数で呼び出されなくなりました。
  • .NET 用 MSBuild は .NET 6 を対象とします。

その他の動作の変更

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

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