Saya telah menggunakan ini di VS2010, VS2015, VS2017, dan VS2019. Saya lebih suka solusi ini karena:
- XML dapat digunakan kembali dalam proyek apa pun
- "RootContent" dipilih sebagai Build Action di UI Visual Studio, sama seperti "Konten" lainnya
- "CopyToOutputDirectory" dipatuhi, seperti yang Anda harapkan
- RootContent ditambahkan ke keluaran proyek: dijalankan melalui Referensi-Proyek, mematuhi "Bersihkan", dll.
- RootContent dapat ditentukan dengan karakter pengganti, yang mempertahankan struktur folder rekursif:
<RootContent Include="common\browserhawk\**">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</RootContent>
Menjelang awal file proyek:
<ItemGroup>
<AvailableItemName Include="RootContent">
<Visible>True</Visible>
</AvailableItemName>
</ItemGroup>
Dipinjam Dari Jawaban Ini
Setelah Impor Target Microsoft:
<PropertyGroup>
<AssignTargetPathsDependsOn>
$(AssignTargetPathsDependsOn);
IncludeRootContentAsContent;
</AssignTargetPathsDependsOn>
</PropertyGroup>
<Target Name="IncludeRootContentAsContent">
<CreateItem Include="@(RootContent)" AdditionalMetadata="TargetPath=%(RecursiveDir)%(Filename)%(Extension)">
<Output ItemName="ContentWithTargetPath" TaskParameter="Include" />
</CreateItem>
</Target>
Dipinjam Dari Jawaban Ini