【问题标题】:How to Build Visual Studio Projects for Different Architectures如何为不同的架构构建 Visual Studio 项目
【发布时间】:2015-10-23 19:26:24
【问题描述】:

我正在编写一个批处理脚本,该脚本将构建使用 Visual Studio 2010 制作的项目。我需要它来构建同一项目的四个变体:32 位调试、32 位发布、64 位调试和 64 -bit 释放。

到目前为止,我想我已经弄清楚了如何使用上次保存的设置来构建项目:

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

我该如何修改它,以便它构建我需要的四种不同配置?

【问题讨论】:

  • 从长远来看,您最好在 msbuild 中而不是在批处理文件中执行此操作,因为 msbuild 是为了执行这样的任务(即配置和平台之间的交叉产品,然后循环超过它)。最终也可能会更短,而且您将学习一些 msbuild,将来可能会派上用场。

标签: visual-studio-2010 batch-file command-line msbuild buildconfiguration


【解决方案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%

【讨论】:

  • %_arch% 设置在哪里,对vcvarsall.bat 的调用有什么作用?
  • 据我所知,%_arch% 旨在代表运行编译器的本机平台架构。那是对的吗? msdn.microsoft.com/en-us/library/x4d2c09s(v=vs.100).aspx
  • 对不起。最初我使用了稍微不同的脚本。查看更新。
  • 谢谢!你知道有没有办法为 MSBuild 指定构建输出文件夹?
  • 如果您的意思是要重新定义$(OutDir)$(IntDir) - 请尝试/p:OutDir="..."
猜你喜欢
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2020-12-27
  • 1970-01-01
  • 2012-09-03
  • 2021-08-03
  • 2012-06-19
相关资源
最近更新 更多