Metode alternatif adalah membiarkan item sebagai tipe None
. Di explorer solusi, klik yang ingin Anda terapkan dan setel Content
propertinyaTrue
.
Catatan: Saya melakukan ini di VS2019, dan banyak hal dapat berubah dari versi ke versi.
Untuk membuatnya bekerja, sekarang klik kanan pada proyek Anda, dan pilih "Unload Project". Kemudian klik kanan pada proyek yang dibongkar dan pilih "Edit project_name.vcxproj".
Di editor, pergi ke bagian bawah file dan masukkan target ini tepat sebelum </Project>
tag tambahan:
<Target Name="CopyContent" AfterTargets="Build">
<Copy SourceFiles="@(None)" Condition="'%(None.DeploymentContent)' == 'true'" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
</Target>
Sekarang klik kanan pada proyek yang dibongkar dan pilih "Reload Project". Pilih untuk menyimpan dan menutup jika Anda diminta.
Saya juga menyetel OutputDirectory
ke:
$(SolutionDir)bin\$(Configuration)\$(Platform)\
dan IntermediateDirectory
ke:
$(SolutionDir)obj\$(Configuration)\$(ProjectName)\$(Platform)\
di halaman Project Properties General. Ini menempatkan output dalam folder "bin", dan perantara dalam folder "obj" di root solusi Anda.
Catatan: Tidak $(SolutionDir)
ditentukan saat Anda menjalankan MSBuild dari baris perintah. Ada trik yang dapat Anda gunakan untuk menentukannya ke folder tempat file .sln berada menggunakan GetDirectoryNameOfFileAbove. (kiri sebagai latihan untuk pembaca). Juga, sepertinya pada tahun 2019 mereka menangani ini dengan benar di baris perintah. Ya :) The $(SolutionDir)
berisi garis miring terbalik, maka tidak ada setelah itu. Hasil dari masing-masing harus memiliki garis miring terbalik.
Sekarang, jika Anda memiliki Pro atau lebih tinggi, jangan lakukan ini setiap kali Anda perlu membuat proyek. Itu akan payah. Sebaliknya, setelah Anda menyiapkan proyek sesuai keinginan Anda, pilih Project -> Export Template
. Anda memberinya nama, dan lain kali Anda ingin membuat proyek seperti itu, cukup pilih nama itu di dialog Proyek Baru. (Dalam versi yang lebih lama, saya pikir ini Files -> Export Teamplate...
.)