Создайте только один проект в решении из командной строки

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

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

Я предполагаю, что есть способ сделать это с помощью msbuild, но я ничего не знаю о msbuild.

Спасибо!

Ответ 1

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

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

cd \MySolution
msbuild .\Project1\Project1.csproj

Ответ 2

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

На этой веб-странице в 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), но он не сработает, если бар и база еще не построены. Чтобы построить несколько проектов и сначала создать независимые проекты, вам необходимо передать в файл решения (после того, как OP упомянул, что это часть файла решения). Затем передайте имя проекта и целевой объект, разделенный двоеточием.

MSBuild mysolution.sln /target:foo:Rebuild

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

Изменить (из comment). Если в названии проекта есть точки (.), вам понадобится чтобы заменить их символом подчеркивания (_).

Ответ 3

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

MSBuild.exe MyProject.proj /t:rebuild

Ответ 4

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

установить MSBuildEmitSolution = 1

fooobar.com/info/112453/...