Решение с предварительными проектами библиотеки классов Core и .net Core 2 MVC - строка подключения web.config не работает - PullRequest
0 голосов
/ 24 мая 2018

У меня есть решение, содержащее много проектов.

Одним из проектов является библиотека классов на уровне доступа к данным.Эта строка используется для строки подключения, получаемой из web.config любого другого проекта, который ссылается на него:

private string Constr = ConfigurationManager.ConnectionStrings["DefaultConn"].ConnectionString;

Я добавил web.config в приложение MVC .net core 2,но я получаю эту ошибку:

FileNotFoundException: не удалось загрузить файл или сборку 'System.Configuration.ConfigurationManager, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = 123456'.Система не может найти указанный файл.

Я также попытался добавить строку подключения в файл appsettings.json - но это также не помогает;полное содержание appsettings.json:

{
  "ConnectionStrings": {
    "DefaultConn": "Server=.;Database=MyDatabase;Trusted_Connection=true;"
  },

  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

Я нашел несколько статей в Интернете, танцующих вокруг него, но ни одна из них не может это исправить.

Как читать в Интернете.Конфигурационный файл в приложении .Net Core Здесь упоминается похожая ситуация и пакет nuget, но это не решает проблему для пользователя.

Как включить ссылку на сборку в ASPПроект .NET Core Это касается его, но относится только к Hangfire, а не к библиотеке классов с использованием ConfigurationManager

Как я могу это сделать?Спасибо.

1 Ответ

0 голосов
/ 25 мая 2018

Я понимаю, что в идеале вы должны использовать DI и appsettings.json для хранения строки подключения в .net core MVC 2.

Однако, что касается моего конкретного вопроса - передача строки подключения в библиотеку классов, которая ужеожидание чего-то от web.config - и для помощи в переходе на ядро ​​.net - этот другой вопрос был полезен: Как читать файл web.config в приложении .Net Core

Но нетОтвет ответил на это - комментарий сделал от Zuhair.В основном просто переименуйте web.config app.config, и это работает.Он работает и для связанной библиотеки классов.

Вот мой app.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Server=.;Database=mydb;Trusted_Connection=true;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Вам также необходимо установить этот пакет NuGet:

System.Configuration.ConfigurationManager
...