7

私は 1 つの実行可能プロジェクトを持っています。たとえばA、実行中に別の実行可能プロジェクトBを起動しています。A の現在の作業フォルダーに a を含めるためB.exeに、B を A の参照として追加し、コンパイル後に aB.exeが のフォルダーにコピーされるようにしAます。しかし、作成した構成が A のフォルダーにコピーまたは生成されていないことに気付きました( のフォルダーBには B.exe.config ファイルはありません。AB.exeB

B.exe.configもちろん、手動でのフォルダにコピーすることもできAますが、それを自動的に行う方法があるに違いありません。誰でも私を助けることができますか?

4

3 に答える 3

5

はるかに簡単な解決策は、csproj ファイルに以下を含めることです。これには、参照ファイルの一致するファイル拡張子が含まれます。

  <PropertyGroup>
    <AllowedReferenceRelatedFileExtensions>
      .pdb;
      .xml;
      .exe.config;
      .dll.config
    </AllowedReferenceRelatedFileExtensions>
  </PropertyGroup>
于 2016-02-23T21:13:29.903 に答える
5

ビルド後のイベントを使用できます。または...

プロジェクト A で、B.exe.config へのリンク参照を追加します。これを行うには、既存のアイテムをプロジェクトに追加します。ただし、ファイル ダイアログの [追加] ボタンを押す前に、[追加] ボタンの右側にある下向き矢印を押して、[リンクとして追加] を選択します。次に、コピーするファイルを出力ディレクトリに設定します。プロジェクト ファイルでは、次のようになります。

ProjectA.csproj から:

<None Include="..\ProjectB\bin\Debug\B.exe.config">
  <Link>B.exe.config</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

プロジェクト ファイルを手動で編集してもかまわない場合は、含まれるファイルがビルド構成に依存している可能性があります。以下はビルドに対して機能します (ただし、プロジェクト ツリーのアイコンをダブルクリックしても、VS2013 はファイルを開きません)。

<None Include="..\ProjectB\bin\$(Configuration)\B.exe.config">
  <Link>B.exe.config</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
于 2014-04-07T19:16:51.383 に答える
-1

アプリケーション ディレクトリに 2 つの app.config を持つことはできません。
Visual Studio は、デフォルトで起動プロジェクトの app.config を使用します。
app.config をコピーするビルド後のイベント トリガーを作成できますが、これにより元の app.config が置き換えられます (必要なデータが含まれていると思います)。

(クリーンな dll + プロジェクト アーキテクチャを作成する以外に) 最善の方法は、プロジェクト A のすべての構成データをプロジェクト B の構成データに手動でマージすることです。

于 2012-04-04T14:34:44.083 に答える