2016-10-27 170 views
4

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

1つのファイルを除いて、私はそれがほしいと思う方法をすべて持っています。私は各プロジェクトにApp.configファイルを持っています。私はこれが私のデバッグビルドの出力ディレクトリにコピーされても構いませんが、私の "本当の"リリースビルドでは、私はそれを望んでいません。

ファイルは、そのプロパティに「Do not copy」と設定されています。下の画像を参照してください。

App.config image

を持つにもかかわらず、設定を「コピーしないでください」、しかし、私はまだ「MyAppName.exe.config」ファイルが私はプロジェクトを構築毎回生成され得ます。なぜこれはそうですか?どのように私はそれをオフにすることができますか?それはかなり迷惑です。

アドバイスありがとうございます!

+0

不要な場合は、プロジェクトから削除します。 – Clemens

+0

ありがとうございますが、それは本当に質問に答えません。一時的には、リリースビルドの出力ディレクトリからファイルを削除するビルド後の手順を使用して問題を解決しています。 – David

+0

正確に2つのオプションがあります。アプリケーションがファイルを必要とするか、出力フォルダーにコピーする必要があります。また、アプリケーションで必要としない場合は、プロジェクトに含めないでください。後でいつでも再作成することができます。 – Clemens

答えて

6

はapp.configの取り扱いは特別で、それは名前ではを扱われ、ビルドプロセスはこの順次app.configファイルを選択します:

  • に設定された値$(のAppConfig)を選択します主なプロジェクト
  • プロジェクトと同じフォルダにある@(なし)App.Configを選択します。
  • プロジェクトと同じフォルダにある@(コンテンツ)App.Configを選択します。
  • プロジェクトのサブフォルダにある@(なし)App.Configを選択します。
  • プロジェクトのサブフォルダ内の@(コンテンツ)App.Configを選択します。

$(AppConfig)はMSBuildプロパティです。空白の場合は、「なし」または「コンテンツ」MSBuildアイテムグループに「App.Config」という名前のファイルがありますファイルは使用され、app.config名を[AssemblyName]に置き換えて出力ディレクトリにコピーされます.config

ファイルを削除せずに保持する場合は、「ビルドアクション"プロパティを" None "または" Content "とは違うものに変更する場合は、リスト上の既存の値(" AdditionalFiles "を推奨)または使用する任意の値、たとえば" MyConfigFile "を使用できます。出力ディレクトリに構成ファイルを生成するロジックはありません。

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

+0

華麗な答え、これらの詳細を説明してくれてありがとう。面白い事実:私のVS2015は私のプロジェクトに "App1.config"を追加しました。(そして名前の中毒は気にしませんでした)>結果:AssemblyNameはありません。configファイルが作成されました。 App1.configの名前をApp.configに変更するとすぐに役立ちました。 – Nicolas

関連する問題