Почему моим приложением прочитайте мой файл myApplication.dll.config?

StackOverflow https://stackoverflow.com/questions/3836386

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать настройки приложения с помощью проекта C # .NET, на котором я работаю. Но я не могу получить его, чтобы вернуть ничего другого, то значения по умолчанию. Благодаря свойствам проекта я добавил одну настройку, DBConnectionString и установить его значение в строку подключения, которую я хочу использовать. Его объем установлен на «приложение».

Для этого создал ряд файлов, включая настройки .Settings, settings.designer.cs и app.conifg. Из того, что я понимаю два настроек. * Файлы определяют обычай Settings класс, который получает от ApplicationSettingsBase. Отказ То Settings Затем класс имеет пользовательский, тип безопасным, свойства, которые можно использовать для установки и получения каждой настройки. Файл app.config - это файл XML, который хранит фактические значения настроек.

Когда я создаю свой проект, он выглядит как файл app.config скопирован в целевой каталог как myApplication.dll.config. Моя программа работает нормально и может использовать строку подключения по умолчанию.

Затем я пытался отредактировать файл myApplicaiton.dll.config, чтобы изменить строку подключения. Я снова запустил мою программу, но она продолжала использовать значение по умолчанию. Я заметил, что в моих настройках. DefaultSettingValueAttribute с оригинальной строкой по умолчанию. Я попытался удалить этот атрибут, но затем, когда я попытался получить настройку строки подключения, только что вернул нуль.

Это код, который я использую для прочтения строки подключения.

string conn = Properties.Settings.Default.DbConnectionString

Что я делаю неправильно? Как я могу получить его для возврата значения в файл настроек, а не значение по умолчанию?


Обновлять:

Извините, я должен был упомянуть это. Я на самом деле пишу плагин для другого приложения через публичное API. Итак, мой проект - это DLL, а не EXE.

Это было полезно?

Решение

Вы не можете прочитать настройки от *.dll.config файлы. Если вы библиотека нужны какие-либо специальные настройки, вам нужно поставить их в свой app.config или web.config файлы.

Редактировать: Вы можете включить файлы внешних конфигураций в основном файле приложения или веб-конфигурации. Смотреть здесь для деталей.

Этот Вопрос обсуждает, как управлять файлами конфигурации для крупных проектов.

Другие советы

Файлы настроек и файлы .Config - это разные вещи (я не знаю, почему VS автоматически добавляет A.Config, когда вы создали файл настроек). Но файл настроек скомпилирован в класс и ссылается, как вы сказали. Если вы декомпилируете DLL с помощью рефлектора .NET. Используется для удержания постоянных значений или внешних ресурсов. Например: сообщение об ошибке строки, значки или изображения.

Файл конфигурации предназначен для настроек, которые могут часто меняться или между средами (dev, test, prod). Для строки подключения вы должны использоватьu003CconnectionStrings> Раздел конфигурации файла. И свойство может быть указано с использованием System.configuration.configurationManager [«ConnectionStringName»].

Однако из вашего оригинального поста похоже, что ваш .dll будет использоваться в более крупном проекте (либо .exe веб-проекта). Одно следует отметить, что все проекты используют только один файл .Config. И это конфигурационный файл для основного проекта. Сайты файл web.config и exe используют xxx.xxx.xxx.exe.config (как вы видели, * .exe.config файлы переименованы копии файлов app.config). DLL не имеют полезных файлов конфигурации. Все DLL будет смотреть на файл главного проекта .Config для получения информации.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top