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

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

相关问题