使用BuildEngine传递MsBuild命令行参数

时间:2010-09-03 20:01:19

标签: c# msbuild msbuild-buildengine

我有以下代码从另一个C#app构建项目:

var buildEngine = new Engine();

buildEngine.RegisterLogger(new ConsoleLogger());

var success = buildEngine.BuildProjectFile(pathToCsProjFile);
if(!success)
{
    Log.LogIt("On Noes! We Broke!");
}
else
{
    Log.LogIt("It Worked!!!!!!");
}

目前它构建了默认配置(Debug),但我希望它能够构建发布版本。如果我从命令行调用MsBuild,我会做类似的事情:

C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Release

如何将配置开关传递给构建引擎?

2 个答案:

答案 0 :(得分:3)

你想要设置属性,这样的事情可以解决这个问题:

var pathToCsProjFile = "";
var buildEngine = new Engine();
var project = new Project(buildEngine);
project.Load(pathToCsProjFile);
project.SetProperty("Configuration", "Release");

var success = project.Build();

答案 1 :(得分:2)

使用BuildProjectFile的其他重载实现之一。我相信这one。创建BuildPropertyGroup并添加所需的属性。在这种情况下,'Configuration'='Release'