Cara menggunakan MSBuild.rsp atau menentukan switch baris perintah Visual Studio MSBuild.exe default


0

Saya ingin MSBuild.exe selalu menggunakan opsi / MP sehingga proyek selalu dibangun dengan banyak core. Saya mencoba menambahkan / MP ke baris terakhir MSBuild.rsp saya (dalam direktori yang sama dengan MSBuild.exe yang dapat dieksekusi). Namun opsi / MP tidak digunakan. Bagaimana saya bisa mendapatkan Visual Studio untuk selalu menggunakan opsi / MP?

The MSBuild.rsp menggambarkan perilaku saya ingin menggunakan, tapi saya belum bisa mendapatkannya bekerja:

File respons otomatis adalah file .rsp khusus yang secara otomatis digunakan oleh MSBuild.exe saat membangun sebuah proyek. File ini, MSBuild.rsp, harus berada di direktori yang sama dengan MSBuild.exe, jika tidak, ia tidak akan ditemukan. Anda dapat mengedit file ini untuk menentukan beralih baris perintah default ke MSBuild.exe. Misalnya, jika Anda menggunakan logger yang sama setiap kali Anda membangun sebuah proyek, Anda bisa menambahkan / logger switch ke MSBuild.rsp, dan MSBuild.exe akan menggunakan logger setiap kali proyek dibangun.

Saya me-restart komputer saya untuk memverifikasi bahwa MSBuild.exe entah bagaimana tidak menggunakan versi MSBuild.rsp sebelumnya.

Saya memverifikasi bahwa saya memodifikasi MSBuild.rsp di direktori yang sama dengan MSBuild.exe dengan memeriksa "Open File Location" di task manager Windows. Opsi konfigurasi MP proyek kosong (tidak dinonaktifkan secara eksplisit).

Saya mengonfirmasi bahwa opsi / MP di MSBuild.rsp tidak digunakan dengan melakukan pembangunan kembali "Hanya Proyek" dan menghitung hanya satu contoh cl.exe di Windows Task Manager (jika saya melakukan pembangunan kembali yang sama dengan opsi / MP yang diset secara manual ada lebih dari 10 contoh cl.exe).

Saya juga mencoba menambahkan banyak sampah ke MSBuild.rsp, dan tidak ada kesalahan atau peringatan yang dilaporkan oleh Visual Studio, yang membuat saya berpikir MSBuild.rsp tidak digunakan sama sekali.

Saya mencoba mengaktifkan pencatatan hasil diagnostik untuk MSBuild dan ini menunjukkan opsi / MP (sebagai argumen untuk Tracker.exe) ketika saya mengaktifkannya secara eksplisit dalam pengaturan konfigurasi proyek saya, tetapi jika saya membiarkan opsi MP kosong dalam konfigurasi proyek saya dan hanya menyertakan di MSBuild.rsp opsi / MP tidak termasuk dalam output ini. Saya tidak tahu apa itu Tracker.exe (saya berharap melihat MSBuild.exe di tempatnya). Saya juga mencoba menambahkan file Tracker.rsp dengan / MP di direktori yang sama dengan Tracker.exe pada tebakan liar, dan itu juga tidak membantu (dan saya juga mencoba menambahkan MSBuild.rsp ke direktori Tracker.exe saya dan juga tidak berdampak).

Hanya untuk melihat apakah file rsp bisa bekerja, saya secara eksplisit menambahkan file rsp dengan opsi @ ditambahkan ke pengaturan konfigurasi proyek saya, dan itu memang ditampilkan sebagai memuat dalam opsi / MP dalam output build diagnostik, tetapi tidak berpengaruh . Opsi / MP dimasukkan kemudian sebagai argumen untuk cl.exe, bukan sebagai argumen untuk Tracker.exe seperti ketika opsi MP ditentukan dalam konfigurasi proyek. Saya pikir pilihannya adalah MSBuild (atau Tracker.exe saya kira), bukan cl.exe.

Saya menggunakan Visual Studio 2010 dengan sebagian besar proyek C ++.


Saya ingin memodifikasi switch default sehingga saya tidak perlu mengubah konfigurasi proyek saya secara langsung karena (1) ada lusinan proyek dalam solusi saya dan (2) konfigurasi proyek dikendalikan oleh versi dan saya tidak ingin memeriksa dalam perubahan ini saat ini.
JDiMatteo

Jawaban:


1

Satu hal yang dapat Anda lakukan adalah memasukkannya ke dalam file alat peraga dan membuat proyek pribadi Anda mewarisi dari file itu. Di bawah ItemDefinitionGroupDi dalam ClCompileAnda akan <MultiProcessorCompilation>true</MultiProcessorCompilation>.


Terima kasih Jay, itu berhasil, dan keyakinan saya pada Microsoft dan Visual Studio dipulihkan! Daripada menambahkan file properti, saya menambahkan <ClCompile> <MultiProcessorCompilation> true </MultiProcessorCompilation> </ClCompile> ke bagian bawah <ItemDefinitionGroup> di C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4. 0 \ Microsoft.Cpp.Default.props sehingga pengaturan akan menjadi default untuk semua proyek saya.
JDiMatteo

Senang itu bisa membantu. Saya hanya ingin memastikan siapa pun yang bekerja dengan Anda tahu untuk melakukan itu sehingga Anda tidak memiliki properti yang berbeda di tim Anda. Jika Anda ingin memeriksanya ke kontrol sumber, Anda dapat membuat tautan simbolis (melalui mklink) di file program Anda untuk menunjuk ke salinan Anda sendiri dari file alat peraga default di tempat yang lebih nyaman (seperti di mana pun Anda memeriksa proyek Anda) . Maka Anda selalu memiliki salinan terbaru dan tidak harus ingat untuk mengubah file di bawah folder MSFT.
Jay Carlton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.