У меня есть библиотека .Net Standard 2.0. Я ссылаюсь на System.Configuration.ConfigurationManager через NuGet и добавил файл App.config с двумя строками подключения. Когда я прерываю следующую строку, я замечаю, что ConnectionStrings содержит только одну строку подключения, которая не является ни одной из строк подключения, которые есть в моем App.Config (показано ниже).
var foo = ConfigurationManager.ConnectionStrings["cs1"].ConnectionString;
Единственная строка подключения, которая появляется в ConnectionStrings, выглядит следующим образом:
"data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
Я попытался изменить свойства в моем App.config на «всегда копировать» и изменить действие сборки в файле. Я пробовал включать и исключать атрибут providerName в тегах добавления. Я наткнулся на сообщение SO, в котором описывается ошибка, связанная с вышеупомянутой строкой подключения, хотя принятый ответ у меня не работает (. Строки подключения .NET 2.0 App.Config включают нежелательные SQLExpress по умолчанию). Мне не удалось найти никакой другой документации по этой ошибке где-либо еще в Интернете.
Это наводит меня на мысль, что проблема в том, что ConfigurationManager вообще не читает мой App.config, поэтому я попытался изменить настройки копирования и т. Д. Для файла.
App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<clear/>
<add name="cs1" connectionString="Valid Connection String 1;" />
<add name="cs2" connectionString="Valid Connection String 2;" />
</connectionStrings>
</configuration>
Фактический результат состоит в том, что ConfigurationManager.ConnectionStrings имеет только один элемент, который является вышеупомянутой строкой подключения, тогда как желаемый результат состоит в том, что ConfigurationManager.ConnectionStrings имеет две строки подключения, которые я определил в моем файле App.config.
Заранее спасибо за помощь!