Как сохранить библиотеки DLL в другой папке при компиляции в Visual Studio?
Предположим, что у меня есть проект Window Forms/Console Application С# с некоторыми внешними ссылками и ссылки на другие проекты библиотеки классов в том же решении.
Когда я создаю проект Window Form, Я хочу, чтобы ссылочные библиотеки были сохранены в другом месте (например: bin\Release\Libraries), и не в той же папке, что и .exe.
Можно ли это сделать?
Ответы
Ответ 1
Есть две части вашего вопроса:
Как настроить решения для сборки сборок /EXE в нужные вам папки - это настраивается через свойства проекта в VS (свойства проекта → build → output path). Также значение проверки "копировать локальное" свойство по каждой ссылке.
Как загружать файлы сборок из нестандартных местоположений (т.е. из вашей папки... \Libraries) - вам нужно внести изменения в файл app.config, чтобы добавить эти пути, отличные от умолчания, в место поиска сборки (http://support.microsoft.com/kb/837908).
Ответ 2
Правильные ответы были даны ранее. Я просто упомянул, что для него называется пакет nuget PrettyBin.
Установите его в свой проект запуска. DLL и XML файлы перейдут в папку lib, и у вас будет рабочий пример того, как это сделать, если вы не настроите.
Ответ 3
Установить ссылочный путь в проектах.
Вы также можете указать, где выполняется ваш скомпилированный exe, указав путь вывода в проектах.
Ответ 4
Вы найдете рекомендации по организации ссылок на проекты здесь: http://codebetter.com/patricksmacchia/2009/01/11/lessons-learned-from-the-nunit-code-base/
Посмотрите раздел "Ссылка на проект VisualStudio + Copy Local true is evil!"
Ответ 5
Да, возможно, вы сделали бы это в своем msbuild script. Хотя я не могу дать вам точный ответ, посмотрите здесь на этот вопрос на SO Скопируйте все файлы и папки с помощью msbuild