有没有办法取代visualstudio对msbuild的使用,并且仍然在IDE中获得错误报告?我想我可能想用NAnt、Rake或PowerShell在VS中编译,或者用一种同样聪明但使用脚本语言而不是XML的东西。我的构建相当直接——找到所有的.cs并编译它们,然后将dll放入Debug/或Release等中。
我想添加一些从命令行看起来更容易的其他步骤:
- 比如点击服务器来启动某些缓存
- 使用闭包编译
- 最小化CSS
- 生成后生成一些度量(在特定配置中)
- 运行NUnit(或自定义)测试框架并发送电子邮件
- 等等
然而,我仍然希望在IDE中获得"在线错误"反馈。这有可能吗?
您可以为Visual Studio编写一些扩展(Macro、AddIn、Package等),这些扩展可以增强Visual Studio,让其他构建工具运行。最简单的形式可能只是使用"工具\外部工具.."并在那里添加构建工具。只要按照此处所述设置"生成消息"的格式,就会显示输出窗口,就好像它们是由MSBuild生成的一样。
然而,我认为在Visual Studio中完全取代MSBuild是不可能的(BTW也不可取)。
Visual Studio不仅执行MSBuild.exe
并解析它的输出。集成非常紧密,许多GUI方面直接依赖于MSBuild文件的内容。例如,当您在Visual Studio UI中更改某些项目属性时,这些更改(最终)会写入项目的MSBuild文件。
此外,还有一些性能改进,例如Visual Studio"替换"了通过使用进程内编译器从MSBuild文件调用csc.exe
(C#编译器),这节省了一些编译时间,因为需要启动的外部进程更少(也在上述文档中描述)
虽然从体系结构的角度来看,所有这些都很可能被Visual Studio中的一些"接口"包装和封装,但我还没有找到让这些"接口"实现其他东西的方法,例如,在后面使用NAnt。
无论如何,我认为即使在技术上可行,在技术上也不可行。
对于rake,请查看RakeRunner扩展。您可以从解决方案资源管理器运行rake任务,并在Output
窗格中检查错误和其他输出。我几乎没有开发vs包的经验,所以如果有人想帮忙,这个项目是开源的。