Где физически находятся конфигурационные файлы для библиотек классов?


Я предполагаю, что этот вопрос попадет под категорию "ДХ", но, тем не менее, я в замешательстве.

При использовании конфигурационных файлов, например, в приложении Windows Forms, конфигурационный файл можно найти в C:Program файлыИмя_компанииИмя_продуктаприложения.exe.config . Однако с библиотекой классов, которую я разрабатываю, я не вижу "ClassLibrary.файл DLL.config " файл в папке install после его установки (совместно с другим проектом) из Visual Studio. Даже если я нигде не вижу файл, извлечение данных из него работает правильно. Кроме того, выполнение следующего кода из метода в библиотеке классов возвращает ожидаемый путь: C:Program файлыCompanyNameProductNameClassLibrary.файл DLL.config .

Если бы кто-нибудь мог пролить свет на то, чего мне здесь не хватает, это было бы действительно потрясающе.
public static string MyMethod()
{
Assembly assem = Assembly.GetExecutingAssembly();
Configuration config = ConfigurationManager.OpenExeConfiguration(assem.Location);

return "The assembly location was: " + assem.Location + Environment.NewLine +
"The config file path was: " + config.FilePath;

// Gives me "C:Program filesCompanyNameProductNameClassLibrary.dll.config"

}
4 2

4 ответа:

В библиотеке классов, приложение.конфигурационный файл довольно бесполезен. Значения настроек приложения сохраняются в настройках.файл настроек и компилируются в Настройки.дизайнер.cs-файл.

При изменении значения одного из параметров приложения в приложении.настройка напрямую, что не будет иметь влияния на значение параметра, видимое во время запуска приложения. Вы должны фактически открыть редактор настроек, и в этот момент он заметит разницу между приложениями.конфигурационный файл и Настройки.файл настроек и спросите, хотите ли вы, чтобы он обновил ваши настройки.файл настроек с использованием значений из приложения.конфиг.

Зависит от версии. NET. до .NET 4.0 библиотеки классов не могут использовать собственное приложение.конфигурационные файлы, если вы не делаете пользовательские вещи для чтения данных. В этих сценариях для инициализации библиотек классов необходимо получить все необходимые данные и передать их из конфигурации класса-потребителя (то есть, в конечном счете, из приложения winform).конфигурационный файл).

Библиотека классов будет использовать конфигурационный файл вызвавшего ее исполняемого файла.

Значение по умолчанию хранится в библиотеке dll.

Но предположим, что вы изменили настройку в коде и сохранили ее. Где он будет храниться в следующий раз?

В WinXP посмотрите в:

C:\Documents и Settings\имя пользователя\Local Настройки\Данные Приложения

Или в Windows Vista/7 посмотрите в:

C:\Users\username\AppData\Local\

Вы найдете папку, названную в честь вашего приложения, и, углубившись в эту папку, вы найдете файл с именем user.конфиг.

Например:

C:\Documents и Settings\имя пользователя\Local Настройки\Приложения\данные приложение\приложение myapp.exe_urlla1ii3sytrhx0adqtjnjuc24oacqpgu4\1.0.0.0\пользователь.config