Передача аргументов командной строки MsBuild с помощью BuildEngine
У меня есть следующий код для создания проекта из другого приложения C#:
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 ответа
Решение
Вы захотите установить свойство, что-то вроде этого должно сделать свое дело:
var pathToCsProjFile = "";
var buildEngine = new Engine();
var project = new Project(buildEngine);
project.Load(pathToCsProjFile);
project.SetProperty("Configuration", "Release");
var success = project.Build();
Используйте одну из других перегруженных реализаций BuildProjectFile
, Я верю этому. Создать BuildPropertyGroup
и добавьте свойства, которые вы хотите. В этом случае "Конфигурация" = "Выпуск"