Visual Studio 2008 の「出力にコピー」機能に問題があります。
私は4つのプロジェクトを持つソリューションを持っています:
- TestApp1 (Windows アプリケーション)
- TestAppA (Windows アプリケーション)
- TestProj1 (クラス ライブラリ)
- TestProjA (クラス ライブラリ)
依存関係は次のとおりです (プロジェクト参照の依存関係)。
- TestProj1 は何にも依存していません。
- TestApp1 は TestProj1 に依存します
- TestProjA は TestProj1 に依存します
- TestAppA は TestProjA に依存します (したがって、間接的に TestProj1 に依存します)。
つまり、依存関係ツリーは次のようになります。
TestApp1
TestProj1
TestProjA
TestProj1
TestAppA
TestProjA
TestProj1
(各プロジェクトには、標準アセンブリ (system、system.core など) への参照もあります)
TestProj1 に、テキスト ファイル Test.txt を追加しました。このファイルのプロパティで、「ビルド アクション: コンテンツ」と「出力ディレクトリにコピー: 常にコピー」を指定しました。
ソリューションをビルドすると、Test.txt がコピーされます
- TestApp1\bin\Debug
- TestProj1\bin\Debug
- TestProjA\bin\Debug
ファイルはTestAppA\bin\debug にコピーされません。TestProj1 は Test.txt に依存して動作し、TestAppA は TestProjA を介して TestProj1 に依存しているため、TestApp1 は動作しません。
TestAppA から TestProj1 に直接プロジェクト参照を追加すると (TestProj1 への参照が 1 つと TestProjA への参照がもう 1 つあるため)、ファイルは TestAppA\bin\debug フォルダーにコピーされます。
もちろん、カスタム ビルド イベントをセットアップしてファイル Test.txt を TestAppA\bin\debug にコピーすることもできますが、カスタム ビルド イベントの経験が乏しく、組み込みのコピー メカニズムに依存したいと考えています。
私の質問は、Test.txt が TestAppA\Bin\debug にコピーされないのはなぜですか?