I msbuild auf der Kommandozeile verwenden, um eine erzeugte Lösung Datei zu erstellen:Kraft msbuild ein Projekt zu bauen, die in Lösung Config nicht ausgewählt ist
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\zlib.sln
Das Problem ist, dass die von cmake erzeugte Lösung ein Projekt INSTALL hat was nicht standardmäßig erstellt.
Wie kann ich das Ziel INSTALL erzwingen, um zu bauen, ohne manuell die Auflösung zu öffnen und das Kontrollkästchen für die Config?
Eine Lösung ist direkt die vcproj Datei aufrufen (wie ich hier tat)
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\INSTALL.vcproj
aber druckt die Warnung
Microsoft (R)-Buildmodul, Version 3.5.30729.6387
[Microsoft .NET Framework, Version 2.0.50727.6400]
Copyright (C) Microsoft Corporation 2007. Alle Rechte vorbehalten.
Build started 06.07.2013 17:07:57.
Project "c:\Library\build\zlib\vc-9.0\x86\INSTALL.vcproj" on node 0 (default ta
rgets).
c:\Library\build\zlib\vc-9.0\x86\INSTALL.vcproj : warning MSB4098: MSBuild is i
nvoking VCBuild to build this project. Project-to-project references between VC
++ projects (.VCPROJ) and C#/VB/VJ# projects (.CSPROJ, .VBPROJ, .VJSPROJ) are n
ot supported by the command-line build systems when building stand-alone VC++ p
rojects. Projects that contain such project-to-project references will fail to
build. Please build the solution file containing this project instead.
Done Building Project "c:\Library\build\zlib\vc-9.0\x86\INSTALL.vcproj" (defaul
t targets).
Build succeeded.
Wie Sie sehen können, gelang es dem Build. Ich bin in der Lage, den korrekten Build zu gewährleisten, indem ich zuerst die Lösung anrufe, aber ich möchte die Lösung erzwingen, um das Projekt INSTALL zu erstellen.
Irgendwelche Ideen?
Ich bin mir ziemlich sicher, dass das unmöglich ist. Und die Workaround, die Sie bereits gefunden haben, scheint gut genug zu sein, nein?Als Alternative können Sie nicht etwa "cmake --build --target install" verwenden? Es ist schon eine Weile her, seit ich Cmake benutzt habe, aber ich kann mich erinnern, dass Sie msbuild usw. für Sie aufrufen können, anstatt es manuell zu tun. – stijn
vielen Dank, post als Antwort und ich werde dies als gültige Lösung akzeptieren. – Beachwalker