Какой эффективный способ построить файл csproj в коде? - PullRequest
0 голосов
/ 27 марта 2010

Я бы хотел избежать командной строки для этого. Я использовал 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 может его собрать (я проверял).

В этот момент я начинаю задаваться вопросом, подобрал ли я какой-то код, который устарел, или методологию, которая была заменена чем-то другим. Мнения?

1 Ответ

1 голос
/ 27 марта 2010

Метод LoadXml () ожидает строку, содержащую xml, а не путь к файлу. Вместо этого используйте метод Load ().

Нет, в пространстве имен Microsoft.Build нет ничего устаревшего. Предполагая, что вы используете версию 3.5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...