Исполняемый файл .Net Core 3.0 не читает appsettings.json - PullRequest
0 голосов
/ 28 сентября 2019

Я пишу простое консольное приложение .Net Core 3.0 и публикую его как один исполняемый файл.

Я понял, как исключить файл appsettings.json, но когда я запускаю приложение, оно использует исходные настройки и не учитывает изменения, которые я вносил в файл `appsettings.json.

Возможно, когда я запускаю исполняемый файл, он копирует оригинальный файл appsettings.json во временную папку и читает его, а не файл в исходном месте?

Если это так, где находится временное местоположение при работе в Debian Linux?

static void Main(string[] args)
{
    private static MySettings settings = new MySettings();

    var config = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", false, true)
        .Build();

    config.GetSection("Settings").Bind(settings);

    rootPath = settings.RootPath;
}

public class MySettings
{ 
    public int Buffer { get; set; }
    public string RootPath { get; set; }
    public int FrequencySeconds { get; set; }
}

1 Ответ

0 голосов
/ 01 октября 2019

Попробуйте установить базовый путь к рабочему каталогу

.SetBasePath(Directory.GetCurrentDirectory())

Кроме того, привязку можно выполнить с помощью .Get<T>() в разделе

static void Main(string[] args) {    

    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory()) //<--
        .AddJsonFile("appsettings.json", false, true)
        .Build();

    MySettings settings = config.GetSection("Settings").Get<MySettings>();

    rootPath = settings.RootPath;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...