在 ASP.NET Core 1.0 中发布后修改 appsettings.Production.json 文件?

Modify appsettings.Production.json file after publish in ASP.NET Core 1.0?

我有一个非常简单的问题。

在我的 project.json 文件中,我在发布部分的 "appsettings.json" 之后包含了 "appsettings.Production.json"。这很好用,Production 按预期覆盖了原始值。

但是,我的问题是:我可以在 项目发布后 使用文本编辑器修改 Production json 文件吗?我显然尝试过这样做但没有用,所以也许我遗漏了什么?或者,如果我想对任何 json 文件进行任何更改,是否必须再次重新发布整个项目?

有一个 reloadOnChange 参数应该可以解决问题。

var builder = new ConfigurationBuilder()
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
 optional: false,
 reloadOnChange: true
);

正如@rook 所写,第一步是启用 reloadOnChange:

Documentation: When specifying files as configuration sources, you can optionally specify whether changes to the file should result in the settings being reloaded. This is configured by passing in a true value for the reloadOnChange parameter when calling AddJsonFile or similar file-based extension methods.

但除此之外,您还需要更改代码以在注入选项的地方使用 IOptionsMonitor<> 接口而不是 IOptions<>(参见 Options Pattern), otherwise you will notice, that new value has not been applied. Read more in this post.