1. ホーム
  2. visual-studio

[解決済み] リリースモードビルドでXMLドキュメントファイルをコピーしないようにするには?

2023-04-29 08:29:30

質問

Visual Studio 2010 のプロジェクトで、いくつかのサード パーティ製コンポーネントを参照しています。それらのアセンブリは、私たち (そして私たちだけ) の開発者にとって便利な XML ドキュメント ファイルを伴っています。そして、プロジェクトが (Debug または Release モードで) ビルドされるときはいつでも、これらの XML ファイルがビルド ディレクトリにコピーされます。

Visual Studio 内または MSBuild を使用して、ビルド ディレクトリへのこれらの XML ファイルのコピーを無効にする設定またはスイッチが見つからないようです。ポスト ビルド スクリプトはオプションかもしれませんが、胡散臭いものです。何かアイデアはありますか?ありがとうございます。

どのように解決するのですか?

プロジェクトをビルドするとき、.xml/.pdb ファイルは ResolveAssemblyReference タスクによって収集されます。ResolveAssemblyReference が呼び出されたとき、関連ファイルのファイル拡張子のリストが渡されます。このファイル拡張子のリストはMSBuildのプロパティに取り込まれます。 AllowedReferenceRelatedFileExtensionsです。 . デフォルトでは、このリストには ".pdb;.xml" が含まれます。

すべての関連する参照ファイルをピックアップから除外したい場合は、関連するファイルの拡張子を持たないものにプロパティの値を上書きしてください。例えば を設定します。 を "-"に設定します。

また、それによって返されるファイルのリストをカスタマイズすることができます。もし、.pdb ファイルだけを見つけたいのであれば、以下のようにします。 AllowedReferenceRelatedFileExtensions=".pdb" . この場合、.dll/.exe の隣に .pdb ファイルがある参照は、すべてコピーされます。また、.pdb/.xmlで終わらない他の関連ファイルをコピーする場合にも、この方法を使用できます。例えば、MyAssembly.dllという名前のアセンブリが参照されており、その同じフォルダにMyAssembly.pdbとMyAssembly.fooがある場合 AllowedReferenceRelatedFileExtensions=".pdb;.foo" を設定すると、.pdb と .foo の両方のファイルが出力ディレクトリにコピーされます。