MSBuild.rsp nasıl kullanılır veya başka bir şekilde varsayılan Visual Studio MSBuild.exe komut satırı anahtarları belirtilir


0

MSBuild.exe'nin / MP seçeneğini her zaman kullanmasını istiyorum, böylece projeler her zaman birden fazla çekirdekle oluşturulabilir. Benim MSBuild.rsp (MSBuild.exe çalıştırılabilir aynı dizinde) son satırına / MP eklemeye çalıştım . Ancak / MP seçeneği kullanılmıyor. Visual Studio'nun her zaman / MP seçeneğini kullanmasını nasıl sağlayabilirim?

MSBuild.rsp kullanmak istediğim davranış açıklanır, ama işe almak edemedik:

Otomatik yanıt dosyası, MSBuild.exe'nin bir proje oluştururken otomatik olarak kullandığı özel bir .rsp dosyasıdır. Bu dosya, MSBuild.rsp, MSBuild.exe ile aynı dizinde olmalıdır, aksi takdirde bulunmayacaktır. MSBuild.exe'ye varsayılan komut satırı anahtarlarını belirtmek için bu dosyayı düzenleyebilirsiniz. Örneğin, bir projeyi her oluşturduğunuzda aynı günlüğü kullanırsanız, / logger anahtarını MSBuild.rsp dosyasına ekleyebilirsiniz ve MSBuild.exe bir projeyi her inşa ettiğinde günlüğünü kullanır.

MSBuild.exe dosyasının bir şekilde MSBuild.rsp dosyasının önceki sürümünü kullanmadığını doğrulamak için bilgisayarımı yeniden başlattım.

Windows görev yöneticisinde "Dosya Konumunu Aç" seçeneğini işaretleyerek MSBuild.rsp dosyasını MSBuild.exe ile aynı dizinde değiştirdiğimi doğruladım. Proje yapılandırma MP seçeneği boş (açıkça devre dışı değil).

MSBuild.rsp dosyasındaki / MP seçeneğinin bir "Yalnızca Proje" yapılarak kullanılmadığını ve Windows Görev Yöneticisi'nde yalnızca bir cl.exe örneğinin sayılmasıyla kullanıldığını doğruladım (aynı yeniden / MP seçeneğini elle ayarladıysam 10'dan fazla cl.exe örneği vardır).

Ayrıca MSBuild.rsp'e bir grup çöp eklemeye çalıştım ve hiçbir hata veya uyarı bildirilmedi, bu da MSBuild.rsp dosyasının hiç kullanılmadığını düşünmeme neden oldu.

MSBuild için tanılama çıkış günlüğünü etkinleştirmeyi denedim ve projemin yapılandırma ayarlarında açıkça etkinleştirdiğimde / MP seçeneğini (Tracker.exe'ye bir argüman olarak) gösteriyor, ancak MP seçeneğini projem yapılandırmasında boş bırakıp yalnızca MSBuild.rsp içinde / MP seçeneği bu çıktıya dahil değildir. Tracker.exe nedir bilmiyorum (Onun yerinde MSBuild.exe görmek bekleniyor). Ayrıca, bir tahminci üzerinde Tracker.exe ile aynı dizinde / MP ile bir Tracker.rsp dosyası eklemeye çalıştım ve bu da yardımcı olmadı (ve ayrıca Tracker.exe dizinime MSBuild.rsp eklemeyi de denedim. etkisi yoktu).

Sadece rsp dosyasının işe yarayıp yaramadığını görmek için, rsp dosyasını açıkça projemin yapılandırma ayarlarına eklenmiş olan @ seçeneği ile ekledim ve teşhis derleme çıktısında / MP seçeneğinde yükleme olarak göründüğünü gösteriyor, ancak etkisi yok . / MP seçeneği, daha sonra, MP seçeneğinin proje konfigürasyonunda belirtildiği gibi olduğu gibi Tracker.exe için bir argüman olarak değil, cl.exe argümanı olarak dahil edilir. Seçeneği, cl.exe değil MSBuild (veya Tracker.exe sanırım) olması gerektiğini düşünüyorum.

Visual Studio 2010'u çoğunlukla C ++ projeleriyle kullanıyorum.


Varsayılan anahtarları değiştirmek istiyorum; böylece proje yapılandırmamı doğrudan değiştirmek zorunda kalmam, çünkü (1) çözümümde onlarca proje var ve (2) proje yapılandırması sürüm kontrollü ve kontrol etmek istemiyorum şu anda bu değişikliklerde.
JDiMatteo

Yanıtlar:


1

Yapabileceğiniz bir şey onu bir sahne dosyasına koymak ve bireysel projelerinizi bu dosyadan devralmak. Altında ItemDefinitionGroupİçinde senin ClCompileederdiniz <MultiProcessorCompilation>true</MultiProcessorCompilation>.


Teşekkürler Jay, işe yaradı ve Microsoft ve Visual Studio'ya olan inancım geri geldi! Ancak bir sahne dosyası eklemek yerine, C: \ Program Files'daki (x86) \ MSBuild \ Microsoft.Cpp \ v4'deki <ItemDefinitionGroup> altına <ClCompile> <MultiProcessorCompilation> true </MultiProcessorCompilation> </ClCompile> ekledim. 0 \ Microsoft.Cpp.Default.props, ayarın tüm projelerim için varsayılan olmasını sağlayacak şekilde.
JDiMatteo

Bu yardımcı oldu sevindim. Sadece birlikte çalıştığınız başka kimsenin bunu yapmasını sağladığından emin olurum, böylece ekibinizde farklı özellikler bulunmaz. Kaynak denetiminde kontrol etmek isterseniz, program dosyalarınızda sembolik bir link oluşturabilir (mklink yoluyla), varsayılan propsler dosyasını kendi kopyanıza daha uygun bir yerde işaret etmek için kullanabilirsiniz (projelerinizi nereye kontrol ettiğiniz gibi) . O zaman her zaman en son kopyaya sahip olursunuz ve MSFT klasörü altındaki dosyayı değiştirmeyi unutmayın.
Jay Carlton,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.