1

我正在開發一個批處理腳本,該腳本將構建使用Visual Studio 2010製作的項目。我需要它來構建同一項目的四個變體:32位調試,32位發佈,64位調試和64位版本。如何爲不同體系結構構建Visual Studio項目

到目前爲止,我想我已經找到了如何構建項目與它的最後一次保存的設置:

"%MSBUILD_DIR%\MSBuild.exe" !PROJECTNAME!.vcxproj /t:Build^ 

如何修改這一點,所以它會建立一個我需要的四種不同的配置?

+0

從長遠來看,你可能會在MSBuild的,而不是在一個批處理文件,這樣做的更好,爲的MSBuild是爲了執行任務,就像在它的配置和平臺,然後循環之間的(即跨產品)。可能會變得更短,再加上你會學到一些可能在未來派上用場的msbuild。 – stijn

回答

1
@echo off 
setlocal 

set _project=project.vcxproj 

call :do_build "%_project%" Release Win32 
call :do_build "%_project%" Debug Win32 
call :do_build "%_project%" Release x64 
call :do_build "%_project%" Debug x64 

endlocal 
exit /b 0 

:do_build 
setlocal 
set _proj=%~1 
set _conf=%~2 
set _arch=%~3 
set _code=0 
if "%_arch%"=="Win32" (set _vc_arg=x86) else (set _vc_arg=amd64) 
call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %_vc_arg% 
msbuild /t:build /p:Configuration="%_conf%" /p:Platform=%_arch% %_proj% || set "_code=1" 
endlocal & exit /b %_code% 
+0

'%_arch%'設置在哪裏,對'vcvarsall.bat'的調用是做什麼的? –

+0

從我可以告訴它看起來'%_arch%'旨在代表運行編譯器的本地平臺體系結構。那是對的嗎? https://msdn.microsoft.com/en-us/library/x4d2c09s(v=vs.100).aspx –

+0

對不起。最初我使用了稍微不同的腳本。查看更新。 –

相關問題