Построить только один проект в решении из командной строки - PullRequest
38 голосов
/ 06 апреля 2011

У меня есть решение с множеством папок с множеством проектов на c #.

Как мне собрать / перестроить только один из этих проектов из командной строки?

Я думаю, что есть какой-то способ сделать это, используя msbuild, но я ничего не знаю о msbuild.

Спасибо!

Ответы [ 4 ]

89 голосов
/ 23 мая 2013

Имеется файл решения с проектами в нем, и вы хотите собрать / перестроить один проект.

На этой веб-странице в MSDN перечислено, что именно вам нужно сделать:

http://msdn.microsoft.com/en-us/library/ms171486.aspx

Итак, предоставлен файл решения mysolution.sln с проектами:

  • foo.vcxproj
  • bar.vcxproj
  • baz.vcxproj

где все они зависят друг от друга в порядке снизу вверх. Так что baz является наиболее независимым, bar зависит от baz и foo зависит от bar.

Если вы хотите собрать foo, тогда вы делаете:

MSBuild mysolution.sln /target:foo

Другие ответы здесь не учитывают зависимости. Конечно, msbuild.exe создаст один файл проекта (например, foo.vcxproj), но он потерпит неудачу, если еще не были построены bar и baz. Чтобы создать несколько проектов и сначала создать независимые проекты, необходимо передать файл решения (после того, как ОП упомянул, что это было частью файла решения). Затем передайте имя проекта и цель, разделенную двоеточием.

MSBuild mysolution.sln /target:foo:Rebuild

Большое предположение здесь. Я предполагаю, что имя проекта $ (ProjectName) совпадает с именем файла.

Редактировать (из комментарий ) : Если в названии проекта есть точки (.), Вам нужно заменить их подчеркиванием (_).

23 голосов
/ 06 апреля 2011

Вы можете просто позвонить msbuild и передать ему файл проекта .csproj / .vbproj, который вы хотите создать, и он сделает только этот.

Так что-то вроде:

cd \MySolution
msbuild .\Project1\Project1.csproj
4 голосов
/ 06 апреля 2011

Вы можете обратиться к этой ссылке , чтобы узнать больше об использовании MSBuild из командной строки. Вот пример того, что вам нужно:

MSBuild.exe MyProject.proj /t:rebuild
1 голос
/ 02 ноября 2016

Публикация в качестве информации для будущих искателей

set MSBuildEmitSolution = 1

https://stackoverflow.com/a/40372894/826862

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