tôi sử dụng msbuild tại dòng lệnh để xây dựng một tập tin giải pháp tạo:Force msbuild để xây dựng một dự án mà là không được chọn trong giải pháp cấu hình
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\zlib.sln
Vấn đề là giải pháp tạo ra bởi cmake có một dự án INSTALL là không được xây dựng theo mặc định.
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)
Làm cách nào để buộc mục tiêu CÀI ĐẶT được xây dựng mà không tự mở linh hồn và đặt hộp kiểm cho cấu hình?
Một giải pháp là để gọi các tập tin vcproj trực tiếp (như tôi đã làm ở đây)
msbuild /p:Configuration=Release /p:Platform=Win32 build\zlib\vc-9.0\x86\INSTALL.vcproj
nhưng điều này sẽ in cảnh báo
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.
Như bạn có thể thấy, việc xây dựng thành công. Tôi có thể đảm bảo việc xây dựng chính xác bằng cách gọi giải pháp trước, nhưng tôi muốn cũng buộc giải pháp để xây dựng dự án CÀI ĐẶT.
Bất kỳ ý tưởng nào?
Tôi chắc chắn điều này là không thể. Và cách giải quyết bạn đã tìm thấy có vẻ đủ tốt không?Là một thay thế, bạn không thể sử dụng một cái gì đó như "cmake - build - target targeting"? Nó được một lúc kể từ khi tôi sử dụng cmake nhưng tôi dường như nhớ bạn có thể có nó gọi msbuild vv cho bạn thay vì làm nó bằng tay. – stijn
cảm ơn rất nhiều, đăng câu trả lời này và tôi sẽ chấp nhận giải pháp này là hợp lệ. – Beachwalker