中間出力に参照アセンブリを書き込む

.NET SDK では、既定で OutDir ではなく、IntermediateOutputPath参照アセンブリが書き込まれるようになりました。 この変更により、実行時に必要な出力から、これらのビルド時のみの成果物が削除されます。

導入されたバージョン

.NET SDK 6.0.200

以前の動作

参照アセンブリが追加されたため、.NET SDK ではコンパイルの OutDir ディレクトリ内の ref ディレクトリに参照アセンブリが書き込まれていました。 .NET 5 には、ProduceReferenceAssembly プロパティが導入され、net5.0 以降のアプリケーションでは既定で true になります。 この変更により、多くのアプリケーションが参照アセンブリを OutDir ディレクトリ内に暗黙的に生成し始めました。

新しい動作

現在、参照アセンブリは、他の多くの中間成果物と同様に、既定で IntermediateOutputPath ディレクトリの refint ディレクトリに書き込まれます。

変更理由

参照アセンブリは一般に実行時アセットではないため、既定では OutDir ディレクトリに属していません。

カスタム ビルド ロジックがあり、参照アセンブリを操作する必要がある場合は、TargetRefPath プロパティを使用して適切なパスを取得します。

外部システムで OutDir 内の参照アセンブリが必要になる場合は、プロジェクト ファイルで MSBuild プロパティ ProduceReferenceAssemblyInOutDirtrue に設定します。