Использование файла конфигурации в .NET Standard не работает - PullRequest
0 голосов
/ 07 сентября 2018

Как использовать файл конфигурации консоли (App.config) в проекте .NET Standard.

У меня есть одно консольное приложение в файле App.config:

<appSettings>
    <add key="Test" value="test" />
</appSettings>

В моем проекте .NET Standard я добавил пакет NuGet:

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0 

И есть класс, который возвращает значение этого ключа:

public string Test()
        {  
            return ConfigurationManager.AppSettings["Test"];
        }

Это просто для проверки возможности использования настроек App.config в проекте .NET Standard.

Но я получаю это сообщение об ошибке:

System.IO.FileNotFoundException: «Не удалось загрузить файл или сборку» System.Configuration.ConfigurationManager, версия = 4.0.1.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51 'или одна из ее зависимостей. Система не может найти указанный файл. '

Когда я делаю это в Program.cs:

Class class = new Class();
string result = class.Test();

1 Ответ

0 голосов
/ 07 сентября 2018

Мне удалось воспроизвести упомянутое вами поведение, и чтобы исправить его, я сослался на System.Configuration.ConfigurationManager -Version 4.5.0 в консольном проекте, который использует тестовый класс.

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

При этом также убедитесь, что ваш конфигурационный файл <appSettings> находится в разделе <configuration>, например:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
    <appSettings>
        <add key="Test" value="test" />
    </appSettings>
</configuration>

Надеюсь, это поможет!

...