1. ホーム
  2. c#

[解決済み] Visual Studioです。フォルダ構造をコピーせずに「出力先ディレクトリにコピー」する方法は?

2022-05-08 01:20:05

質問

プロジェクトフォルダ内のthe \libフォルダに数個のDLLファイルがあります。dllのプロパティページで、"Build Action"を"Content"に、"Copy to Output Directory" を "Copy always" に選択しています。

ビルド後、実際にDLLがコピーされているのですが、それらは \binReleaselib の中にあり、 \binRelease の中にはありません。

ポストビルドスクリプトを書いたり、nantなどを使わずに、dllファイルを \binRelease (not to \binRelease)にコピーする方法はありますか?

解決方法を教えてください。

の代わりに <Content> 使用 <ContentWithTargetPath> のように、ターゲットパスを指定してください。

<ItemGroup>
  <ContentWithTargetPath Include="lib\some_file.dat">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <TargetPath>some_file.dat</TargetPath>
  </ContentWithTargetPath>
  <None Include="lib\some_file.dat" />
</ItemGroup>

なお、このエントリーはVisual Studio(2012、2015、2017)からは見えないかもしれませんが、手動でcsprojに追加すると、Visual Studioに表示されるようになります。しかし、ターゲットパスはUIから編集することはできません。

を追加する <None> のエントリーを作成することで、Visual Studio の UI にファイルが表示されるようになります。