Где находится 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 был создан для использования в тестовых проектах и других сценариях, не обязательно для среды выполнения, хотя вы, возможно, могли бы развернуть его и использовать во время выполнения.