Kraft msbuild zu bauen, ein Projekt, das ist deaktiviert in der config Lösung
Ich die Verwendung von msbuild-Befehlszeile an, um zu bauen eine generierte Lösung Datei:
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\zlib.sln
Das problem ist, dass die Lösung generiert cmake ein Projekt INSTALLIEREN, die nicht von Standard.
minigzip:
Die Datei "c:\Library\build\zlib\vc-9.0\x86\minigzip.tmp_Release_Win32.vcproj
" wird gelöscht.
ALL_BUILD:
Die Datei "c:\Library\build\zlib\vc-9.0\x86\ALL_BUILD.tmp_Release_Win32.vcpro
j" wird gelöscht.
INSTALL:
The project "INSTALL" is not selected for building in solution configuration
"Release|Win32".
Done Building Project "c:\Library\build\zlib\vc-9.0\x86\zlib.sln" (default targ
ets).
Build succeeded.
0 Warning(s)
0 Error(s)
Wie kann ich die Kraft der Ziel-INSTALLATION zu bauen, ohne manuelles öffnen der soultion nutzen und setzen Sie das Häckchen für die config?
One-Lösung ist der Aufruf der vcproj-Datei direkt (wie ich hier)
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\INSTALL.vcproj
aber diese 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, ist der Aufbau gelungen. Ich bin in der Lage, um sicherzustellen, dass das korrekte erstellen, durch aufrufen der Lösung, aber ich möchte Kraft der Lösung um das Projekt zu erstellen INSTALLIEREN, zu.
Irgendwelche Ideen?
- Ich bin mir ziemlich sicher, dass dies unmöglich ist. Und die Problemumgehung, die Sie bereits gefunden scheint gut genug, Nein? Als eine alternative können Sie nicht verwenden, so etwas wie "cmake --build --target installieren"? Es ist schon eine Weile her, seit ich verwendet cmake, aber ich glaube mich zu erinnern, können Sie es aufrufen von msbuild etc. für Sie zu tun, anstatt es manuell.
- vielen Dank, diesen post als Antwort und ich werde dies akzeptieren als gültige Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich weiß ist das nicht möglich. Blick auf msbuild-Befehlszeile-Optionen und in der solution-Datei, es gibt nichts, um es zu unterstützen. Aber da bist du mit cmake, Sie können es verwenden, um zu bauen alles für Sie, ohne es manuell zu tun. Ich fand dieser thread die im Grunde fragt die gleiche Frage wie du, und die richtige syntax mit der Idee schon ich habe es mit der Bemerkung:
Suchen, die etwas weiter von der
devenv
cmmand line-Optionen, es scheint, es hat die Funktionalität, die Sie suchen. Dies zwingt einen build des Projekts, auch wenn es nicht in Configuration Manager aktiviert:devenv
trick funktioniert noch in VS2015. Danke!stijn Antwort ist der "idiomatischen" Art der Gebäude Ziele durch cmake.
Beachten Sie jedoch, dass MSbuild erstellen können beide Dateien mit der Lösung und Projekt-Dateien. Anstelle von aufrufen
msbuild zlib.sln
Sie auch nennen könntemsbuild ALL_BUILD.vcxproj
.Ebenso können Sie rufen Sie
msbuild INSTALL.vcxproj
.Mithilfe der Lösung generiert CMake version 3.2.2, es ist in der Tat nicht möglich, erstellen Sie das INSTALL-Ziel von msbuild durch die Lösung. Die Ursache ist, dass für das INSTALL-Ziel, die Lösung enthält nur Einträge, wie Sie im Abschnitt GlobalSection(ProjectConfigurationPlatforms):
Wenn Sie hinzufügen, Einträge wie diese:
Dann wird es möglich, den Bau des INSTALL-target mit einem Befehl wie diesem:
Einfachste Weg, um erstellen Sie das Projekt direkt, aber vergessen Sie nicht, um anzugeben, Konfiguration und Plattform.
msbuild /p:Configuration=Release /p:Platform=Win32 INSTALL.vcxproj