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

时间:2019-09-28 16:54:01

标签: c# .net-core config app-config

我正在编写一个简单的.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 :(得分:2)

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

$(element)

此外,可以使用本节的.Get<T>()进行绑定

.SetBasePath(Directory.GetCurrentDirectory())