У меня есть проект WinForm, который содержит несколько UserControls. Этот проект WinForm имеет ссылку на сборку (позволяет вызвать ее lib.dll
), которая создается из другого проекта (Class Library), который существует в другом решении.Альтернативы чтению файлов конфигурации из библиотек классов во время разработки?
Теперь несколько из UserControls
совершают вызовы в lib.dll
, которые возвращают значения из файла app.config
. Во время выполнения lib.dll
работает нормально и возвращает необходимые данные, но во время разработки я получаю исключение от lib.dll
, так как разделы app.config
: NULL
(за исключением исключений).
Теперь я мог пройти через каждый контроль и обернуть любой код, который вызывает в Lib с
if(!DesignMode) { //code }
Но это много контроля, чтобы пойти и применить это к. Есть ли что-то, что я могу сделать во всем мире, что было бы более элегантно, чем тестирование свойства DesignMode?
Редактировать
В ответ на два комментарии, оставленные ниже: решения, предоставляемые как представляется, не работает. Сборка, которая вызывает у меня проблему, живет в том же каталоге, что и app.config. Общая структура каталогов выглядит следующим образом
- Ссылки Папка
- Конфигурации (папки)
- appsettings.config
- app.config
- lib.dll
app.config
тянет в нескольких другие файлы конфигурации (appsettings
, cnx
строки и т. д.), которые находятся в конфигураторе ионов. В случае моего исключения значение, которое я пытаюсь получить, находится в одном из этих вспомогательных файлов конфигурации, на который ссылается app.config
.
Вы пытались добавить копию файла app.config в каталог, содержащий DLL? Просто догадка. – Khan
@Jeff прав, и вы можете сделать две вещи, вы можете сделать app.config ссылкой на другой проект, а затем установить его не для развертывания с dll (Build Type: None). –
Спасибо за ответы. Ни одно из ваших решений не работает, но я обновил свое оригинальное сообщение, чтобы, возможно, пролить свет на проблему. – dparsons