如何以编程方式构建可视化工作室解决方案?

时间:2009-11-11 04:46:59

标签: build compilation solution

我想通过传递解决方案文件路径(.sln文件)和构建模式(调试,发布)来编译解决方案。 我不想调用devenv.exe或msbuild.exe之类的命令行进程,而是想使用API​​并知道是否存在编译错误。

有可能吗? 如果您认为自己知道该怎么做,请提供样品。

4 个答案:

答案 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)

这是一个article以编程方式讨论使用C#编译器。这是一个讨论sln文件格式的article。 sln文件是一个xml文件,所以很容易阅读它。

答案 3 :(得分:0)

我还建议使用MSBuild API。它看起来效果很好。但是,从.NET4和VS2010开始,它已经发生了重大变化。