Как сохранить библиотеки DLL в другой папке при компиляции в Visual Studio? - PullRequest
29 голосов
/ 25 февраля 2011

Предположим, у меня есть оконные формы / Консольное приложение C # с некоторыми внешними ссылками и ссылками на другие проекты библиотеки классовтоже в том же решении.

Когда я создаю проект Window Form , Я хочу, чтобы указанные библиотеки хранились в другом месте (например: bin\ Release \ Libraries ), и не в той же папке, что и .exe .

Возможно ли это сделать?

Ответы [ 5 ]

16 голосов
/ 25 февраля 2011

Есть 2 части вашего вопроса:

Как настроить решения для сборки сборок / EXE в папки по вашему выбору - это настраивается через свойства проекта в VS (свойства проекта -> сборка ->выходной путь).Также значение проверки «копировать локальное» свойство для каждой ссылки.

Как загружать файлы сборок из нестандартных расположений (т.е. из папки ... \ Libraries) - вам нужно внести изменения в ваше приложение.Конфигурационный файл для добавления этих нестандартных путей к месту поиска сборки (http://support.microsoft.com/kb/837908).

6 голосов
/ 14 января 2015

Правильные ответы были даны ранее. Я просто упомяну, что для этого существует пакет nuget PrettyBin .

Установите его в свой проект запуска. Библиотеки DLL и XML-файлы перейдут в папку lib, и у вас будет рабочий пример того, как это делается, если вы не хотите настраивать.

2 голосов
/ 25 февраля 2011

Установить путь ссылки в свойствах проекта.

Вы также можете указать, куда идет ваш скомпилированный exe, указав путь вывода в свойствах проекта.

1 голос
/ 25 февраля 2011

Здесь вы найдете лучшие практики для организации ссылок на проекты: http://codebetter.com/patricksmacchia/2009/01/11/lessons-learned-from-the-nunit-code-base/

См. Главу «Справочник по проекту VisualStudio + опция Копировать локальный true - это зло!»

0 голосов
/ 25 февраля 2011

Да, это возможно, вы сделали бы это в своем скрипте msbuild. Хотя я не могу дать вам точный ответ, посмотрите здесь на этот вопрос на SO Скопируйте все файлы и папки, используя msbuild

...