。Net Core 3.0可执行文件不读取appsettings.json

问题描述 投票:0回答:1

我正在编写一个简单的.Net Core 3.0控制台应用程序,并作为单个可执行文件发布。

我想出了如何排除appsettings.json文件,但是当我运行该应用程序时,它使用的是原始设置,并且不接受我对`appsettings.json文件所做的更改。

也许当我运行可执行文件时,它是将原始appsettings.json文件复制到某个位置的temp文件夹中,而不是在原始位置读取该文件吗?

如果是这样,那么在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; }
}
c# .net-core config app-config
1个回答
0
投票

尝试设置工作目录的基本路径

.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;
}
© www.soinside.com 2019 - 2024. All rights reserved.