我们如何自动化Visual Studio构建?
如何将在IDE中执行的Visual Studio构建转换为可以从命令行运行的脚本?
解决方案
回答
查看构建工具NAnt或者MSBuild。我相信MSBuild是VisualStudio2005及更高版本的构建工具。但是,我是NAnt的粉丝...
回答
最简单的方法:导航到包含解决方案或者项目文件的目录,然后运行" msbuild"(假设我们使用的是Visual Studio 2005或者更高版本)。
更灵活的方式:
- 阅读MSBuild参考。有大量的自定义项,尤其是在安装了MSBuild社区任务项目后。
- 使用NAnt。它的存在时间比MSBuild长,并且具有更多的社区支持,但是需要我们从头开始创建项目文件,而不是扩展现有的,由Visual Studio创建的文件。
回答
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe
许多命令行参数,但最简单的只是:
msbuild.exe yoursln.sln
回答
NAnt和MSBuild是在.NET中实现构建自动化的最受欢迎的工具,我们可以在Stack Overflow问题最佳.NET生成工具中找到有关每种方法的优缺点的讨论。
回答
我必须在Visual Studio 2003中为C ++项目执行此操作,所以我不知道这与Visual Studio的更高版本相关性:
在创建可执行文件的目录中,将有一个" 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)
回答
从VisualStudio2005开始,所有项目文件(至少对于基于.NET的项目而言)都是实际的MSBuild文件,因此我们可以在命令行上调用MSBuild并将其传递给项目文件。
最重要的是,如果我们想对构建过程进行任何真正的控制,则需要使用NAnt或者MSBuild之类的"构建脚本语言"(还有其他,但现在是主流)。
回答
使用VS2008,我们可以执行以下操作:
devenv solution.sln /build configuration
回答
看看UppercuT。它为我们带来了很多好处,它可以满足需求,甚至更多。
UppercuT使用NAnt进行构建,并且它非常易于使用。
对于大多数项目,自动构建就像(1)解决方案名称,(2)源代码控制路径,(3)公司名称一样简单!
http://projectuppercut.org/
这里有一些很好的解释:UppercuT