Visual studio 如何自动化VisualStudio构建?

Visual studio 如何自动化VisualStudio构建?,visual-studio,build-automation,Visual Studio,Build Automation,如何将在IDE中执行的Visual Studio生成转换为可以从命令行运行的脚本?查看生成工具或。我相信MSBuild是VisualStudio2005及更高版本的构建工具。然而,我是NAnt…的粉丝。最简单的方法是:导航到包含解决方案或项目文件的目录,然后运行msbuild(假设您有Visual Studio 2005或更高版本) 更灵活的方式: 仔细阅读。有成吨的 定制,尤其是一次 您已经安装了 使用。它已经存在 用于比MSBuild更长的时间,并且具有更多 社区支持,但需要你 从中启动项

如何将在IDE中执行的Visual Studio生成转换为可以从命令行运行的脚本?

查看生成工具或。我相信MSBuild是VisualStudio2005及更高版本的构建工具。然而,我是NAnt…

的粉丝。最简单的方法是:导航到包含解决方案或项目文件的目录,然后运行
msbuild
(假设您有Visual Studio 2005或更高版本)

更灵活的方式:

  • 仔细阅读。有成吨的 定制,尤其是一次 您已经安装了
  • 使用。它已经存在 用于比MSBuild更长的时间,并且具有更多 社区支持,但需要你 从中启动项目文件的步骤 划伤,而不是延长 现有的,VisualStudio创建了一个
有很多命令行参数,但最简单的是:

msbuild.exe yoursln.sln

是自动化内置的最流行工具,你可以在栈溢出问题中讨论每个问题的优点/缺点。

< P>我必须在VisualStudio 2003 > <强>中的C++项目中这样做,所以我不知道这与VisualStudio:V/P>的后期版本有多大关系。 在创建可执行文件的目录中,将有一个
BuildLog.htm
文件。在浏览器中打开该文件,然后为每个部分打开,例如:

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"
创建一个包含方括号(但不包括方括号)之间内容的.rsp文件,并随意调用它。我似乎记得绝对路径有问题,因此您可能必须确保所有路径都是相对的

然后在构建脚本中,从
BuildLog.htm
文件添加命令行,但要使用.rsp文件名:

cl.exe @autobuild01.rsp /nologo
(注意,还有一个link.exe节和cl.exe)

截至,所有项目文件(至少对于基于.NET的项目)都是实际文件,因此您可以在命令行上调用MSBuild并将项目文件传递给它


底线是,如果您想真正控制构建过程,您需要使用“构建脚本语言”,如或MSBuild(还有其他语言,但这些是目前的主流语言)。

使用VS2008,您可以做到:

devenv solution.sln /build configuration

看看上勾。它对你的责任有很大的帮助,而且它能满足你的需求,甚至更多

UppercuT使用NAnt进行构建,这是一个非常容易使用的构建框架

自动化构建简单到(1)解决方案名称,(2)源代码管理路径,(3)大多数项目的公司名称


这里有一些很好的解释:

这是我使用VS2010的msbuild调试配置的批处理文件:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo

下面是我用来通过批处理脚本完全自动化同一解决方案的x86和x64配置的命令行构建的脚本

这是基于DevEnv.exe的,因为如果您的生成中有安装项目(msbuild不支持生成安装项目),它就可以工作

我假设您的安装是32位Windows 7,使用Visual Studio 2010安装程序,使用x86本机编译器和x64交叉编译器。 如果您运行的是64位windows,则可能需要在批处理脚本中将x86_amd64更改为amd64,具体取决于您的设置。 这是假设Visual Studio安装在程序文件中,并且您的解决方案位于D:\MySoln中

创建一个名为buildall.bat的文件并将其添加到其中:

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

:x86
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
goto eof

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause
crosscompilex64.bat以生成x64版本的发布版本,并包括以下内容

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
现在将所有3个批处理文件与MySoln.sln一起放在解决方案文件夹中。 通过在桌面上创建运行以下命令的快捷方式,可以同时生成x86和x64版本:

  • 全部编译->D:\MySoln\buildall.bat
  • 仅构建x86版本->D:\MySoln\buildall.bat x86
  • 仅构建x64版本->D:\MySoln\buildall.bat x64

如果您正在使用其他配置,如AnyCPU等,则需要相应地自定义上述脚本。

更简单的方法是更改VS 2015项目和解决方案配置: 当项目过期时,转到工具选项卡->选项->项目和解决方案->构建和运行->运行(选择始终构建)。瞧


现在,当您运行(F5)项目时,IDE将自动生成项目。希望这有帮助,欢迎任何反馈。

这种方式似乎总是最简单的。同样适用于20032005和2010,但他们建议将msbuild改为2010NAnt只是msbuild的包装器(因此生成任务的名称是
),但NAnt很酷,因为它让您可以直接做其他事情,比使用自定义msbuild任务更容易。嗯,我想我以前没有见过有人将批处理文件导入cmd.exe。这其实很聪明。
devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%