我使用的MSBuild在命令行建立一個生成的解決方案文件:力的MSBuild建設項目,該項目是在解決方案配置未選擇
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\zlib.sln
的問題是,由CMake的生成的解決方案有一個項目安裝的是不是默認生成的。
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)
如何在不手動打開soultion的情況下強制安裝目標INSTALL並設置配置複選框?
一種解決方案是直接調用vcproj文件(像我一樣在這裏)
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\INSTALL.vcproj
但這打印警告
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.
正如你所看到的,構建成功。我可以通過首先調用解決方案來確保構建正確,但我想強制解決方案也可以構建項目INSTALL。
任何想法?
我很確定這是不可能的。你已經找到的解決方法似乎不夠好嗎?作爲替代你不能使用「cmake --build --target install」之類的東西嗎?我用cmake已經有一段時間了,但我似乎記得你可以讓它爲你調用msbuild等,而不是手動執行。 – stijn
非常感謝,發佈這個答案,我會接受這是有效的解決方案。 – Beachwalker