2015-02-16 2 views
1

До сих пор я использовал/практиковал Visual Studio (VS) для создания, компиляции и развертывания решений с помощью одного проекта. Это довольно прямолинейно, по крайней мере, для меня. Вы просто заходите в папку .. \ bin \ release и запишите все файлы там, где также есть все зависимости.Как создать и развернуть визуальное студийное решение с несколькими проектами

Теперь я получаю решения с несколькими проектами. У меня есть проект службы Windows со следующим решением.

Раствор-ServiceXYZ

  • ServiceXYZ (EXE)
  • Проект1 (DLL)
  • Проект2 (DLL)
  • Project3 (DLL)
  • Log4Net

Я установите ServiceXYZ в качестве запуска. Он также ссылается на проекты с 1 по 3, каждый из которых также ссылается на внешнюю DLL. Путь сборки в каждом проекте - \ bin \ Release.

Каков наилучший способ создания и развертывания этого окна? После того, как я построю решение, мне нужно вручную скопировать каждую DLL из каждого проекта и EXE из проекта службы в папку и закрепить его? Я предполагаю, что я могу установить путь сборки в каждом проекте к общей папке, но это кажется неправильным.

В папке ServiceXYZ \ bin \ release есть все зависимости, EXE-файл, включая app.config и serviceXYZ.exe.config. Это потому, что этот проект является проектом запуска? Кроме того, я хочу только serviceXYZ.exe.config, а не app.config, потому что это может смутить пользователей. Наверное, мне не нужно копировать его для развертывания.

Добавить log4net в этот микс, и теперь я тяну свои волосы относительно того, где находится файл журнала, и где должен находиться log4net.config.

Каков наилучший способ установить выходной каталог для всего решения, чтобы все DDL, EXE и log4net.config и mylog.log были в одном месте?

Благодаря

ответ

0

При добавлении .EXE файлы в свой проект, искать их свойства. Там вы найдете недвижимость CopyToOutputDirecory. Установите его на TRUE.

Когда вы добавляете ссылки, .dll s, найдите их свойства. Там вы найдете недвижимость CopyLocal. Установите его на TRUE.

То же самое для других файлов, вы должны получить имущество Copy To Output Directory.

Когда вы добавляете другой проект в текущий проект, установите его выходной каталог таким же, как и текущий. Средство вывода для обоих проектов должно быть одинаковым.

+0

Кажется, мне все еще нужно вручную скопировать библиотеки DLL для проектов 1,2 и 3 (DLL из самих проектов и их зависимостей) выше в моих примерах в выходной каталог. Я прав? Где выходной каталог? Это папка bin \ Release проекта EXE? – hexterminator

+0

@hexterminator Отредактировал мой ответ.Затем я попытался добавить еще один проект в существующий проект, применяя шаги, упомянутые в ответе для обоих проектов, они построены в том же каталоге вывода. – DhavalR