Как я могу автоматически создать один каталог развертывания из нескольких проектов

#c# #visual-studio #deployment

#c# #visual-studio #развертывание

Вопрос:

В моем решении есть несколько консольных проектов C #, где каждый проект ссылается на внешние библиотеки DLL или локальные образы. Я хочу создать чистый каталог для развертывания, который содержит, например,

ConsoleApplication1.exe

ConsoleApplication1-resource1.jpg

ConsoleApplication1-resource2.jpg

ConsoleApplication2.exe

ConsoleApplication3.exe

ConsoleApplication4.exe

ConsoleApplication4-resource1.jpg

ConsoleApplication4-libarary.dll

Common-library-for-all-projects.dll

без PDB или файлов манифеста.

Я мог бы изменить все настройки проекта, чтобы все параметры выходного пути указывали на один и тот же каталог. Однако мне нужно изменить кучу настроек проекта, и я предполагаю, что должна быть причина для того, чтобы не использовать один и тот же выходной каталог в проектах.

Я также пробовал Publish... использовать command, но я не смог опубликовать все проекты в своем решении сразу, и это привело к созданию ненужных установочных файлов.

Как мне настроить мое решение Visual Studio / параметры проекта, чтобы автоматически создавать один распространяемый каталог из нескольких проектов?

Ответ №1:

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

 %windir%Microsoft.NETFrameworkv4.0.30319msbuild.exe MySolution.sln /p:OutputPath="c:foo"