Где находится app.dll.config

У меня есть библиотека классов C# (dll; .net 4.0). Я назову это "mytestlib". Я добавил к нему файл Settings.setting, который также добавляет в проект файл app.config. В нем есть несколько свойств области приложения, а также некоторые свойства области пользователя.

Во время отладки я вижу файл "mytestlib.dll.config" в папке bin\Debug, где я и ожидаю. Тем не менее, когда я устанавливаю библиотеку с помощью установщика MSI, я не нахожу "mytestlib.dll.config" нигде в системе! Куда Microsoft помещает app.dll.config?? Я начинаю подозревать, что это на самом деле встроено в DLL (я надеюсь, что это не так).

Я знаю, что он где-то есть, потому что приложение exe, которое использует эту DLL, успешно извлекает настройки из файла "mytestlib.dll.config". Проблема, я не знаю, где файл.

Кстати, я могу найти user.config.

Пожалуйста, помогите и спасибо заранее!

Примечание: я могу сделать то же самое с приложением Windows Form (exe), а затем установить его с помощью установщика MSI, и я нахожу app.exe.config рядом с.exe, как и следовало ожидать. Почему app.dll.config не работает так же?

2 ответа

Решение

В соответствии с документацией не существует модели файла конфигурации для библиотек классов. Параметры приложения / пользователя, определенные в библиотеке, фактически будут использовать файл app/user.config исполняемого файла, который ссылается на библиотеку. Поэтому app.dll.config отсутствует (настройки находятся в app.exe.config приложения, ссылающегося на dll).

Пара вещей:

1 - Вы должны рассмотреть возможность размещения соответствующих записей конфигурации в запуске *.exe.config. Они будут подобраны DLL соответственно.

2 - Ваш установщик, вероятно, не узнает о файле conifg, если вы специально не указали это.

3 - Конфигурационный файл DLL был создан для использования в тестовых проектах и ​​других сценариях, не обязательно для среды выполнения, хотя вы, возможно, могли бы развернуть его и использовать во время выполнения.

Другие вопросы по тегам