Я бы хотел избежать командной строки для этого. Я использовал MSBuild API (Microsoft.Build.Framework
и
Microsoft.Build.BuildEngine
) с кодом, который выглядит следующим образом:
this.buildEngine = new Engine();
BuildPropertyGroup props = new BuildPropertyGroup();
props.SetProperty("Configuration", "Debug");
this.buildEngine.RegisterLogger(this.logger);
Project proj = new Project(this.buildEngine);
proj.LoadXml(this.projectFileAndPath, ProjectLoadSettings.None);
this.buildEngine.BuildProject(proj, "Build");
Однако у меня достаточно проблем, и я не могу найти ответы на эти вопросы. Мне действительно интересно, правильно ли я это делаю. Во-первых, я не могу найти вывод (нет каталога bin ни в одном из мест, где я предполагал, что DLL будет в конечном итоге). Во-вторых, я попытался создать проект, который я сделал в VS2008, и строка proj.LoadXml(
не подходит для некорректной кодировки XML. Но, конечно, файл xml действителен, поскольку VS2008 может его собрать (я проверял).
В этот момент я начинаю задаваться вопросом, подобрал ли я какой-то код, который устарел, или методологию, которая была заменена чем-то другим. Мнения?