我想通过传递解决方案文件路径(.sln文件)和构建模式(调试,发布)来编译解决方案。 我不想调用devenv.exe或msbuild.exe之类的命令行进程,而是想使用API并知道是否存在编译错误。
有可能吗? 如果您认为自己知道该怎么做,请提供样品。
答案 0 :(得分:3)
你将不得不在某个时刻启动一个进程来进行编译,你也可以生成一个进程来启动编译。它比使用API更容易。
编辑安德鲁给出了一些关于如何实现这一目标的好建议,但我仍然认为这是一个错误。
答案 1 :(得分:2)
正如itowlson指出你也可以使用Build Engine APIs
...来自MSDN ...
// Build a project file
bool success = engine.BuildProjectFile(@"c:\temp\validate.proj");
您可以使用批处理文件等脚本中的MSBuild。只需检查ErrorLevel中的0以外的其他内容......或者您可以使用API获得乐趣。
C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \ MSBuild.exe
..来自msbuild.exe /? ...
Microsoft(R)构建引擎版本 2.0.50727.4927 [Microsoft .NET Framework,版本2.0.50727.4927] 版权所有(C)Microsoft Corporation 2005.保留所有权利。
语法:MSBuild.exe [选项] [项目文件]
...
示例:
MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug
答案 2 :(得分:1)
答案 3 :(得分:0)
我还建议使用MSBuild API。它看起来效果很好。但是,从.NET4和VS2010开始,它已经发生了重大变化。