2009-01-31 16 views
88

Monotone, CMake, Visual Studio Express 2008 ve özel sınamalar kullanan büyük bir C++ çözümü için ödeme, derleme, dağıtım, test ve işlem döngüsünü komut dosyası yapıyorum.Bir Visual Studio projesini komut satırından nasıl derlerim?

Diğer tüm parçalar oldukça basit görünüyor, ancak Visual Studio çözümünü GUI'yi almadan derlemeyi göremiyorum.

Komut dosyası Python'da yazılmıştır, ancak bir arama yapmamı sağlayan bir cevap: os.system yapardı.

cevap

92

Daha iyi şansınız olabilir. Bunu yapmanın iki yolu biliyorum.

Yöntem 1 İlk yöntem (I tercih) olan
msbuild kullanımı:

msbuild project.sln /Flags... 

Yöntem 2
da çalışabilir:

vcexpress project.sln /build /Flags... 

vcexpress Seçenek hemen döner ve herhangi bir çıktı yazdırmaz. Sanırım senaryo için istediğin şey bu olabilir.

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

Yani, sonuç olabilir: Ayrıca Msbuild ve vcexpress sistem yolunda varsayılan olarak değil gibi ortam değişkenleri, doğru olduğundan emin olmak isteyeceksiniz

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

. Visual Studio oluşturma ortamını başlatın ve komut dosyasını orada çalıştırın veya Python'daki yolları (os.putenv ile) değiştirin.

+0

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

+0

msbuild, VS 2008 ile gönderim yapıyor gibi görünmüyor –

4

MSBuild is your friend.

msbuild "C:\path to solution\project.sln" 
+0

MSBuild ve DevEnv işlemi .sln dosyalarındaki farklardan dolayı tek bir durumda başarısız olduğunu gördüm. –

37

MSBuild genellikle çalışır, ama daha önce zorluklara çalıştırmak.

+0

MSBuild, Visual Fortran projeleriyle (* .vfproc) çalışmaz. Beni devenv'e işaret ettiğin için teşekkürler. –

+0

Kullanmak zorundayım: devenv YourSolution.sln/Build ama çok teşekkürler. – bobwah

+7

Ayrıca yapılandırmayı da belirtebilirsiniz: devenv YourSolution.sln/Build Debug' –

15

Dürüst olmak gerekirse, 2 sentümü eklemem gerekiyor.

msbuild.exe ile bunu yapabilirsiniz. msbuild.exe'un 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 Kullanım versiyonu MSBuild.exe

\ ihtiyacınız. Temel olarak sonuncuyu kullanmalısın.

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

\ Yani bunu nasıl. \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Msbuild:

C MSBuild.exe için KOMUTANLIĞI penceresi

  • Girdi yolu çalıştırın .exe

    1. Girdi

    gibi proje çözüm yolu "C: \ Users \ Clark.Kent Belgeler Projeler \ WpfApplication1 \ WpfApplication1.sln \ görsel stüdyo 2012 \ \"

    1. Çözüm yolundan sonra ihtiyacınız olan tüm bayrakları ekleyin. \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe:

    2. basın Eğer

      C gibi ilgili tüm olası bayraklar yardım alabilirsiniz

    Not ENTER/help

    2

    DEVENV pek çok durumda iyi çalışır, ancak WIX yükleyicimi oluşturmak için bir WIXPROJ üzerinde, sahip olduğum tek şey "CATASTROPHIC" hatasıdır Çıkış günlüğünde. Yapılandırma = benim için çalıştı başkaları tarafından da belirttiği gibi msbuild Kullanılması

    3

    bırakın ama sadece bundan biraz daha yapmak için gerekli:/p oluşturma:/t MsBuild /Path/PROJECT.WIXPROJ:

    Bu işleri . Her şeyden önce, msbuild derleyiciye erişmesi gerekiyor. Bu çalıştırarak yapılabilir:

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

    Sonra msbuild benim $ PATH yüzden onun açık yol üzerinden çalıştırmak zorunda değildi:

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

    Son olarak, benim proje bazı değişkenlerin yararlanarak edildi $(VisualStudioDir) gibi. O yüzden /property seçeneği üzerinden manuel olarak ayarlamak zorunda msbuild tarafından belirlenen alamadım o görünüyor:

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

    Bu hat bundan sonra nihayet beni projemi derlemek izin verdi.

    Bonus: komut satırı araçlarının, "ücretsiz" GUI tabanlı Visual Studio Topluluğu sürümünde olduğu gibi kullanıldıktan sonra 30 gün sonra kayıt gerektirmedikleri görülüyor. Microsoft kayıt şartı yerine getirildikten sonra, bu sürüm pek ücretsizdir. Herhangi bir şey varsa facebook olarak ...

    İlgili konular