Frage

Mein Buildbot läuft seit 3 ​​Jahren und verwendet devenv.com, um die Projekte unter Windows zu kompilieren.

Jetzt hat devenv.com Probleme, 64-Bit-Versionen zu erstellen:Die Übergabe der Konfiguration als „Debug|x64“ führt aufgrund des Pipe-Zeichens zu Befehlszeilenfehlern.Das Escapen und Einschließen zwischen Anführungszeichen führt zu anderen Fehlern, teilweise aufgrund der Leerzeichen in den Verzeichnisnamen, teilweise aufgrund der seltsam verstandenen Befehlszeile.

Ich habe sowohl vcbuild.exe als auch MSBuild.exe ausprobiert.vcbuild.exe funktioniert perfekt:Ich möchte dabei bleiben.MSBuild.exe hingegen hat eine völlig seltsame und komplizierte Ausgabe, die meine Kollegen schrecklich finden.Aber es wird überall so angepriesen DER Art zu bauen.

Die Frage ist:Welche Methode von devenv.com, vcbuild.exe und MSBuild.exe ist am wahrscheinlichsten langlebig?

War es hilfreich?

Lösung

MSBuild (vor Visual Studio 2010/.NET 4) erstellt selbst keine C++-Projekte.Es ruft vcbuild.exe auf.Wenn Sie also damit zufrieden sind, MSBuild nicht zu verwenden, würde ich mich bei den C++-Projekten daran halten.Für verwaltete Projekte (und für C++ mit VS 2010) verwenden Sie MSBuild.

Andere Tipps

MSBuild ist die Methode, die „am wahrscheinlichsten hält“.VCBuild.exe ist tot;Die letzte Veröffentlichung war 2008.MSBuild 4.0 wird es weiterhin verwenden, wenn ein VC-Projekt aus VS2008 oder früher erstellt werden muss.Was devenv.exe betrifft – es handelt sich natürlich nur um kopfloses Visual Studio.Funktionell ist es dasselbe, als würde man in VS auf „Build“ klicken.Das bedeutet, dass es heutzutage im Wesentlichen nur noch an MSBuild übergeben wird, allerdings manchmal mit weniger Parallelität, als msbuild.exe erreichen kann.Der Hauptgrund, warum Sie devenv.exe möglicherweise weiterhin verwenden müssen, sind .vdproj-Projekte (Bereitstellung).Für diese Legacy-Dinge ist ein Build-Prozess fest in VS codiert.Ich empfehle eine Alternative wie WiX oder Installshield, die auf MSBuild basieren.Es dauert nicht mehr lange, bis alles, was in VS erstellt wird, MSBuild ist.

Kurz gesagt: MSBuild ist die Zukunft. Verwenden Sie es, es sei denn, Sie haben Bereitstellungsprojekte oder andere besondere Umstände.

Dan

Ich bin auf das gleiche Problem gestoßen und habe es gelöst, indem ich in der Windows-Shell das Pipe-Zeichen umgangen habe:

"Debug^|Win32"

msbuild.exe weiß nicht (wusste?), wie man Setup-Projekte erstellt.devenv.exe tut es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top