我有一个非常直截了当的问题。
在我的project.json文件中,我包含了" appsettings.Production.json"在" appsettings.json"在发布部分。这很有效,制作会按预期覆盖原始值。
但是,我的问题是:在使用文本编辑器发布项目之后,我能够修改生产json文件吗?我显然试过这样做而且它没有用,所以也许我有什么东西不见了?或者,如果我想对任何json文件进行任何更改,我是否必须重新发布整个项目?
答案 0 :(得分:7)
正如@rook所写,第一步是启用reloadOnChange
:
Documentation:将文件指定为配置源时,您可以选择指定对文件的更改是否会导致重新加载设置。这是通过在调用AddJsonFile或类似的基于文件的扩展方法时传递reloadOnChange参数的true值来配置的。
但另外,您还需要更改代码以在注入选项的位置使用IOptionsMonitor<>
接口而不是IOptions<>
(请参阅Options Pattern),否则您会注意到,新的值尚未应用。在此post中阅读更多内容。
答案 1 :(得分:3)
有一个reloadOnChange
参数应该可以解决问题。
var builder = new ConfigurationBuilder()
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
optional: false,
reloadOnChange: true
);