我是一名独立开发者,使用Visual Studio 2008,并正在研究MSBuild以改进我的构建过程。
到目前为止,我找到的大多数教程都提供了编写构建文件的丰富信息。但我有很多困难找到如何将MSBuild集成到Visual Studio中。也许MSBuild仅与像CruiseControl这样的东西一起使用,但对于一个单独的开发者来说,这太过复杂了。
在Visual Studio项目中,构建文件应该放在哪里?我如何在IDE内运行它?
我是一名独立开发者,使用Visual Studio 2008,并正在研究MSBuild以改进我的构建过程。
到目前为止,我找到的大多数教程都提供了编写构建文件的丰富信息。但我有很多困难找到如何将MSBuild集成到Visual Studio中。也许MSBuild仅与像CruiseControl这样的东西一起使用,但对于一个单独的开发者来说,这太过复杂了。
在Visual Studio项目中,构建文件应该放在哪里?我如何在IDE内运行它?
Visual Studio会自动执行支持的项目的MSBuild。
如果您右键单击一个项目并卸载它,那么您可以在Visual Studio中编辑它。重新加载(再次右键单击项目),强制进行(重新)构建以测试更改。另一种方法是在外部编辑器中编辑项目文件,Visual Studio会检测保存并提供重新加载该项目的选项。
听起来您走在正确的轨道上,如果您考虑编写目标或自定义MSBuild任务,请花时间将它们与当前项目分离,以便您可以重复使用它们。不要重复发明轮子,两个主要的互补MSBuild项目是MSBuild Community Tasks和MSBuild Extension Pack。
更新:根据您对Mitch答案的评论,您可能还想考虑向项目添加新的Configuration元素或自定义属性。新的MSBuild Configuration(不同于默认的Debug / Release)可以运行单元测试,构建文档或任何您想要自动化的内容。自定义MSBuild属性将允许您使用正常的Debug / Release Configuration,并扩展其功能以自动化更多的构建过程,这取决于您想要什么。任何一种方法也可以从命令行驱动。
正如其他人所指出的那样,当你安装Visual Studio时,MSBuild已经可用。
如果你想集成到VS2008中:从Visual Studio运行MSBuild
MSBuild是Visual Studio使用的构建引擎,用于处理项目中包含的文件。
实际上,Visual Studio项目文件本身(例如C#的**.csproj*和VB的.vbproj)就是运行每次构建项目时运行的MSBuild脚本。
您可以使用当前的.vcproj文件使用MSBuild构建项目。然而,由于MSBuild没有直接支持(至少对于vc ++),因此内部使用vcbuild代替。
在VS2010中,所有项目文件都是基于MSBuild的...
<windowsdir>\Microsoft.NET\Framework\v3.5\MSBuild.exe c:\temp\MyProject\mybuildfile.proj
最简单的方法可能是使用 post-build 步骤来调用您的自定义构建脚本。右键单击项目,选择“生成事件”,然后从那里使用您的自定义 msbuild 文件调用 msbuild。