Bagi mereka yang mengalami masalah dalam menggunakan jawaban Chris , ini adalah solusi untuk Visual Studio 2012 dan yang lebih baru:
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
Seperti yang dikatakan Chris dalam jawabannya - Visual Studio tidak akan menyentuh <Target>
bagian ini , meskipun Anda secara manual mengutak-atik (menambahkan / menghapus file) dengan direktori target.
Harap dicatat bahwa Anda harus menyertakan subdirektori tempat file-file tersebut berada (dalam kasus di atas, itu images
). Visual Studio / MSBuild akan menempatkan file tersebut di direktori yang sama dalam struktur proyek. Jika Anda tidak menggunakan subdirektori, file akan ditempatkan di root struktur proyek.
Untuk penjelasan singkat tentang wildcard:
**
Berarti semuanya secara rekursif (file, subdirektori, dan file di dalamnya)
*.ext
akan menyertakan semua file dengan ekstensi ext
di dalam direktori level teratas, tetapi tidak subdirektori
- Misalnya,
*.ext
bisa *.png
, *.js
, dll Setiap ekstensi file akan bekerja
**\*.ext
akan menyertakan semua file dengan ekstensi ext
dari direktori level teratas dan semua subdirektori.
- Lihat jawaban dari Bagaimana cara menggunakan pola penamaan Nant / Ant? untuk penjelasan yang lebih lengkap beserta contohnya.
Untuk penyelesaiannya, perlu diketahui bahwa ada perbedaan antara menggunakan <Target>
dan tidak menggunakannya.
Dengan <Target>
pendekatan ini, Visual Studio tidak akan menampilkan file di dalam Solution Explorer.
<Target Name="ContentsBeforeBuild" AfterTargets="BeforeBuild">
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>
</Target>
<Target>
Pendekatan non- akan memerintahkan Visual Studio untuk menampilkan file dalam Solution Explorer. Kekurangannya adalah manipulasi direktori otomatis akan menyebabkan Visual Studio menimpa entri wildcard. Perlu juga dicatat bahwa pendekatan di bawah ini hanya akan memperbarui Penjelajah Solusi setelah membuka Solusi / Proyek di VS. Bahkan tombol toolbar "refresh" Solution Explorer tidak akan melakukannya.
<ItemGroup>
<Content Include="images\**" />
</ItemGroup>