【问题标题】:Modify appsettings.Production.json file after publish in ASP.NET Core 1.0?在 ASP.NET Core 1.0 中发布后修改 appsettings.Production.json 文件?
【发布时间】:2016-09-26 18:00:25
【问题描述】:

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

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

但是,我的问题是:我能否在项目发布后使用文本编辑器修改生产 json 文件?我显然尝试过这样做但没有成功,所以也许我缺少一些东西?或者如果我想对任何 json 文件进行任何更改,是否必须重新发布整个项目?

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-core-mvc asp.net-core-1.0


    【解决方案1】:

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

    Documentation:将文件指定为配置源时,您可以选择指定对文件的更改是否应导致重新加载设置。这是通过在调用 AddJsonFile 或类似的基于文件的扩展方法时为 reloadOnChange 参数传入一个 true 值来配置的。

    但另外,您还需要更改代码以在注入选项的地方使用IOptionsMonitor<> 接口而不是IOptions<>(请参阅Options Pattern),否则您会注意到新值尚未应用。在post 中阅读更多内容。

    【讨论】:

    • 是的,这是为我做的!我按照@rook 所说的做了,认为它会起作用,但我想知道为什么它不起作用。不知道会有这个额外的步骤。谢谢!
    • 哇 - 真的很惊讶这是多么复杂!
    【解决方案2】:

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

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

    【讨论】:

    • 见上面的答案。还有更多工作要做。
    猜你喜欢
    • 1970-01-01
    • 2015-02-17
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    相关资源
    最近更新 更多