#c# #.net-3.5 #app-config #class-library
#c# #.net-3.5 #app-config #class-library
Вопрос:
У меня есть библиотека классов с файлом app.config с 4 настройками в нем. Ранее, когда я пробовал это (VS2008), как только я ссылался на библиотеку, я не мог получить доступ к конфигурационному файлу / приложение ломалось, но по какой-то причине это работает сейчас. Я ссылался на библиотеку в 3 приложениях, и я все еще могу получить доступ к настройкам, но фактический конфигурационный файл отсутствует.
Компилируется ли файл конфигурации вместе с библиотекой, как только вы ссылаетесь на него, или что с ним происходит?
(работает в vs2010)
Ответ №1:
Вероятно, это работает, потому что в сгенерированных настройках есть значения по умолчанию.Файл Designer.cs. Более важный вопрос: как я могу изменить свои настройки?
И для этого потребуется скопировать или объединить соответствующие разделы XML из библиотеки app.config в библиотеку ссылающегося приложения.
Комментарии:
1. Если я объединю файлы конфигурации, смогу ли я изменить настройки библиотеки, не изменяя способ взаимодействия библиотеки с настройками, т.Е.: Свойства. Настройки. По умолчанию.. или мне понадобится какой-нибудь менеджер
2. хорошо, я попробую это. Я только что получил подтверждение того, что моя конфигурация библиотек работает, потому что у меня установлены значения по умолчанию. Я все еще ищу, как объединить две конфигурации.
Ответ №2:
Файл конфигурации переименован; «приложение» заменяется именем вашей сборки. Итак, если ваш app.config связан, скажем Foo.exe
, с программой, то в вашей выходной папке (например bindebug
) у вас должен быть Foo.exe.config
. Если ваш app.config связан с библиотекой классов, скажем Bar.dll
, тогда в выходной папке это будет Foo.dll.config
.
Комментарии:
1. Кроме того, для любого
.settings
файла, который вы добавляете в проект, эти настройки также попадают вapp.config
(а не в отдельный конфигурационный файл).2. Я просмотрел все файлы .settings в проекте, который ссылается на dll и все файлы .config, и не смог найти соответствующие settings. ps. Я знаю, что мои настройки сохранены -> lib.dll.config. Библиотека имеет значения по умолчанию. Настройки не находятся в отдельном файле или файле my.exe.config
3. Вы редактировали файлы .settings напрямую или через пользовательский интерфейс конструктора настроек? Пользовательский интерфейс генерирует код в
.settings.designer.cs
файле (илиvb
), который, я полагаю, является источником ваших значений по умолчанию. (Я спрашиваю только потому, что допустил эту ошибку 🙂 Если вы прошли через пользовательский интерфейс, и что-то по-прежнему не отображается, единственное, что я могу предложить, это удалить, а затем воссоздать файлы app.config и .settings. (Сделайте резервную копию или, по крайней мере, сделайте скриншоты, прежде чем делать это.)