Komut satırından bir Visual Studio projesini nasıl derlerim?


113

Monotone , CMake , Visual Studio Express 2008 ve özel testler kullanan büyük bir C ++ çözümü için kullanıma alma, derleme, dağıtım, test etme ve işleme döngüsünün komut dosyası yazıyorum .

Diğer tüm parçalar oldukça basit görünüyor, ancak GUI almadan Visual Studio çözümünü nasıl derleyeceğimi bilmiyorum.

Komut dosyası Python'da yazılmıştır, ancak cevap: os.system'e bir çağrı yapmama izin verir.

Yanıtlar:


116

Bunu yapmanın iki yolunu biliyorum.

Yöntem 1
İlk yöntem (tercih ettiğim) msbuild kullanmaktır :

msbuild project.sln /Flags...

Yöntem 2
Şunları da çalıştırabilirsiniz:

vcexpress project.sln /build /Flags...

Vcexpress seçeneği hemen geri döner ve herhangi bir çıktı yazdırmaz. Sanırım bir senaryo için istediğiniz bu olabilir.

DevEnv'in Visual Studio Express 2008 ile dağıtılmadığını unutmayın (benzer bir sorunla ilk karşılaştığımda bunu çözmeye çalışırken çok zaman harcadım).

Dolayısıyla, sonuç şu olabilir:

os.system("msbuild project.sln /p:Configuration=Debug")

Ayrıca, msbuild ve vcexpress varsayılan olarak sistem yolunda olmadığından, ortam değişkenlerinizin doğru olduğundan emin olmak isteyeceksiniz. Visual Studio derleme ortamını başlatın ve komut dosyanızı oradan çalıştırın veya Python'daki yolları ( os.putenv ile ) değiştirin.


Bu, Visual Studio 2010 Express için de geçerlidir.
Samuel Harmer

msbuild VS 2008 ile gönderilmiyor gibi görünüyor
Lucky Luke

46

MSBuild genellikle çalışır, ancak daha önce zorluklarla karşılaştım. İle daha iyi şansa sahip olabilirsin

devenv YourSolution.sln /Build 

MSBuild, Visual Fortran projeleriyle (* .vfproc) çalışmaz. Beni devenv'e yönlendirdiğiniz için teşekkürler.
Maik Beckmann

Kullanmam gerek: devenv YourSolution.sln / Build ama çok çalıştı teşekkürler.
bobwah

7
Ayrıca yapılandırmayı da belirtebilirsiniz:devenv YourSolution.sln /Build Debug
Josh Stribling

Harika çalışıyor. Aşağıdaki komutu kullanarak da yeniden inşa edebilirsinizdevenv YourSolution.sln /rebuild
Abhineet

1
Ayrıca bir boşluktan sonra hata ayıklama veya bırakma ekleyerek yayın veya hata ayıklama modu için yeniden oluşturulabilir. Örneğin: devenv YourSolution.sln /rebuild releaseveyadevenv YourSolution.sln /rebuild debug
Abhineet

21

Dürüst olmak gerekirse 2 sentimi eklemem gerekiyor.

Bunu msbuild.exe ile yapabilirsiniz . Msbuild.exe'nin birçok sürümü vardır .

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework64 \ v3.5 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

İhtiyacınız olan sürümü kullanın. Temelde sonuncuyu kullanmalısın.

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe

Peki nasıl yapılır.

  1. COMMAND penceresini çalıştırın

  2. Msbuild.exe yolunu girin

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe

  1. Proje çözümüne giden yolu aşağıdaki gibi girin:

"C: \ Users \ Clark.Kent \ Documents \ visual studio 2012 \ Projects \ WpfApplication1 \ WpfApplication1.sln"

  1. Çözüm yolundan sonra ihtiyacınız olan bayrakları ekleyin.

  2. ENTER tuşuna basın

Gibi olası tüm işaretler hakkında yardım alabileceğinizi unutmayın.

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / yardım



9

msbuildBaşkalarının belirttiği gibi kullanmak benim için işe yaradı, ancak bundan biraz daha fazlasını yapmam gerekiyordu. Öncelikle msbuildderleyiciye erişime sahip olması gerekir. Bu, aşağıdakileri çalıştırarak yapılabilir:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"

Sonra msbuild$ PATH'ımda değildi, bu yüzden onu açık yolu üzerinden çalıştırmak zorunda kaldım:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" myproj.sln

Son olarak, projem gibi bazı değişkenler kullanılıyordu $(VisualStudioDir). Görünüşe göre bunlar ayarlanmıyor, msbuildbu yüzden onları seçenekle manuel olarak ayarlamak zorunda kaldım /property:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" /property:VisualStudioDir="C:\Users\Administrator\Documents\Visual Studio 2013" myproj.sln

Bu satır sonunda projemi derlememe izin verdi.

Bonus : Görünüşe göre komut satırı araçları, "ücretsiz" GUI tabanlı Visual Studio Community sürümünde olduğu gibi 30 gün kullanıldıktan sonra kayıt gerektirmiyor. Microsoft kayıt şartı ile bu sürüm neredeyse hiç ücretsiz değildir. Facebook'ta olduğu gibi ücretsiz bir şey varsa ...



3

DEVENV birçok durumda iyi çalışıyor, ancak WIX yükleyicimi oluşturmak için bir WIXPROJ'da sahip olduğum tek şey Çıkış günlüğünde "CATASTROPHIC" hatası.

Bu çalışır: MSBUILD /Path/PROJECT.WIXPROJ / t: Build / p: Configuration = Release

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.