8

私が構築しているWPFアプリケーションがあります。私は Visual Studio Community 2015 を使用しています。「真の」リリース ビルドを作成するために、ユーザーのコンピューターにインストールされる必要なファイルのみが生成されるように、いくつかのビルド設定を変更しています。したがって、vshost exe、生成された XML ファイルなどはありません (ただし、PDB ファイルの生成は保持しています)。

1 つのファイルを除いて、思いどおりのものがすべて揃っています。各プロジェクトに App.config ファイルがあります。これがデバッグ ビルドの出力ディレクトリにコピーされることは気にしませんが、「真の」リリース ビルドではそこにコピーしたくありません。

ファイルは、そのプロパティで既に「コピーしない」に設定されています。以下の画像を参照してください。

App.config イメージ

ただし、「コピーしない」設定があるにもかかわらず、プロジェクトをビルドするたびに「MyAppName.exe.config」ファイルが生成されます。これはなぜですか?どうすればオフにできますか?それはかなり迷惑です。

アドバイスをありがとう!

4

3 に答える 3

22

app.config の処理は特別で、By Nameで処理され、ビルド プロセスは次の順序で app.config ファイルを選択します。

  • メイン プロジェクトで設定された値 $(AppConfig) を選択します。
  • プロジェクトと同じフォルダーにある @(None) App.Config を選択します。
  • プロジェクトと同じフォルダーにある @(Content) App.Config を選択します。
  • プロジェクトの任意のサブフォルダーで @(None) App.Config を選択します。
  • プロジェクトの任意のサブフォルダーで @(Content) App.Config を選択します。

$(AppConfig) は MSBuild プロパティです。空の場合は、"None" または "Content" MSBuild アイテム グループで "App.Config" という名前のファイルが検索され、一致する場合はそのファイルが使用されます。出力ディレクトリにコピーされ、app.config 名が [AssemblyName].config に置き換えられます。

ファイルを削除せずに保持したい場合は、「Build Action」プロパティを「None」または「Content」とは異なるものに変更する必要があります。リストの既存の値を使用できます (「AdditionalFiles」をお勧めします)。または、使用したい任意の値、つまり「MyConfigFile」で、ファイルをプロジェクト内に保持しますが、出力ディレクトリに構成ファイルを生成するロジックはありません。

または、ファイルの名前を「app.config」以外の名前に変更し、「ビルド アクション」と「出力ディレクトリにコピー」の現在のプロパティ値を保持することもできます。

于 2016-10-27T20:17:29.113 に答える
1

MSBuild パラメーターを追加/p:AllowedReferenceRelatedFileExtensions=.pdbして、ライブラリ プロジェクトの .config ファイル、ライブラリ xml ドキュメントなどを抑制します。上記では、PDB のみが保持されます。

このパラメーターは csproj ファイルにも追加できますが、個人的には、ビルド構成の一部として管理する方が簡単だと思います。

于 2020-12-17T12:58:40.317 に答える