У меня есть решение с множеством папок с множеством проектов С#.
Как создать/перестроить только один из этих проектов из командной строки?
Я предполагаю, что есть способ сделать это с помощью msbuild
, но я ничего не знаю о msbuild.
Спасибо!
У меня есть решение с множеством папок с множеством проектов С#.
Как создать/перестроить только один из этих проектов из командной строки?
Я предполагаю, что есть способ сделать это с помощью msbuild
, но я ничего не знаю о msbuild.
Спасибо!
Вы можете просто вызвать msbuild
и передать ему файл проекта .csproj/.vbproj, который вы хотите построить, и он будет делать только этот.
Так что-то вроде:
cd \MySolution
msbuild .\Project1\Project1.csproj
Учитывая файл решения с проектами в нем, и вы хотите построить/перестроить один проект.
На этой веб-странице в MSDN перечислены именно то, что вам нужно сделать:
http://msdn.microsoft.com/en-us/library/ms171486.aspx
Итак, заданный файл решения mysolution.sln с проектами:
где все они зависят друг от друга в нижнем и верхнем порядке. Так что baz
является самым независимым, bar
зависит от baz
и foo
зависит от bar
.
Если вы хотите построить foo, тогда вы выполните:
MSBuild mysolution.sln /target:foo
Другие ответы здесь не учитывали зависимости. Конечно, msbuild.exe построит один файл проекта (т.е. Foo.vcxproj), но он не сработает, если бар и база еще не построены. Чтобы построить несколько проектов и сначала создать независимые проекты, вам необходимо передать в файл решения (после того, как OP упомянул, что это часть файла решения). Затем передайте имя проекта и целевой объект, разделенный двоеточием.
MSBuild mysolution.sln /target:foo:Rebuild
Большое предположение здесь. Я предполагаю, что имя проекта $(имя_проекта) соответствует имени проекта.
Изменить (из comment). Если в названии проекта есть точки (.), вам понадобится чтобы заменить их символом подчеркивания (_).
Вы можете обратиться к этой ссылке, чтобы узнать больше об использовании MSBuild из командной строки. Вот пример того, что вам нужно:
MSBuild.exe MyProject.proj /t:rebuild
Публикация информации будущим искателям
установить MSBuildEmitSolution = 1