Копировать dll в выходной каталог exe при использовании внедрения зависимостей без ссылок?

2

У меня есть решение С#, которое я использую для инъекции зависимостей для разрешения ссылок между dll. У меня есть проект exe и некоторые другие проекты dll, на которые exe не ссылается (он использует DLL через контейнер IoC). Параметры проекта - это настройки по умолчанию, визуальные студийные настройки, в которых они строят каждую DLL в своей собственной папке. Поскольку exe не ссылается на dll, они никогда не копируются в выходной каталог exe и не попадают в структуру IoC.

Как вы справляетесь с этим? Вы строите их все в одном каталоге? Использовать команды post build copy? Или что-то еще?

Теги:
visual-studio
dependency-injection

3 ответа

4

Я обычно обрабатываю это, используя команду копирования после сборки (используя Build Events, поэтому они автоматические), который помещает сборки зависимостей в общую папку.

Затем я убеждаюсь, что эта папка включена в мой путь поиска контейнеров IoC, поэтому они обнаруживаются.

Другим, аналогичным вариантом является использование события сборки в вашем основном проекте приложения. Затем он может скопировать зависимости в соответствующую папку. Это имеет то преимущество, что позволяет использовать разные зависимости для разных приложений в одном и том же решении, при этом все еще легко поддерживать.

  • 0
    На самом деле у нас есть событие сборки в основном проекте ... но проблема в том, что если он не меняется, и вы нажимаете F5, проекты, которые изменились, создаются, но копирование не происходит, так как exe didn ' т изменить / построить.
  • 0
    @NotDan: Да - это проблема со вторым подходом. Существуют варианты - однако, в основном - щелкните правой кнопкой мыши решение в обозревателе решений и выберите «Зависимости проекта» - убедитесь, что библиотеки добавлены в качестве зависимостей основного проекта. Это должно заставить их восстановить ...
Показать ещё 3 комментария
2

Используйте команды post build copy или измените каталог вывода для всех проектов в общий каталог

0

Я бы (и сделал) использовал команды post build copy. Создайте файл .BAT, который сделает все необходимые копии, прикрепите его к событию после сборки, и все готово.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню