1. ホーム
  2. msbuild

[解決済み] プロジェクトコーン外にある.csprojのコンテンツファイルのインクルード

2023-01-15 13:01:55

質問

MyProject.csproj という C# のプロジェクトが "C:\ProjectsMyProject にあります。また、このプロジェクトの出力ディレクトリにコピーしてほしいファイルがあります。しかし、そのファイルは "C:\MyContentFiles" という場所にあり、つまりプロジェクトコーン内にはありません。このディレクトリには、サブディレクトリもあります。このディレクトリのコンテンツは管理されていません。したがって、私はその下にあるものをすべて含めなければなりません。

プロジェクトに 'コンテンツ' として含めると、それらはコピーされますが、ディレクトリ構造は失われます。私はこのようなことをしました。

<Content Include="..\..\MyContentFiles\**">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

これらのファイル/ディレクトリを、ディレクトリ構造を保持したままプロジェクトの出力ディレクトリに再帰的にコピーするにはどうすればよいですか?

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

ファイルをリンクとして追加する必要があります。

  1. VS でプロジェクトを右クリックします。
  2. 追加 -> 既存のアイテム...
  3. ファイルを検索します。
  4. それを選択し
  5. 追加する をリンクとして追加 (を追加する(ダイアログの追加ボタンでドロップダウン)。
  6. ファイルのプロパティを開き、"出力ディレクトリにコピー"を"常にコピー"に設定します。

BUT ディレクトリツリーにはできません。

代わりに、そのためのポストビルドタスクを書く必要があります。 これはサンプルです。 のサンプルで、これを見れば一目瞭然です。