1

我有一个非常简单的问题。在ASP.NET Core 1.0中发布后修改appsettings.Production.json文件?

在我的project.json文件中,我在发布部分的“appsettings.json”之后加入了“appsettings.Production.json”。这很好,生产覆盖了预期的原始值。

但是,我的问题是:我能够修改生产json文件该项目已发布与文本编辑器?我显然尝试过这样做,但它不起作用,所以也许我错过了一些东西?或者如果我想对任何json文件进行任何更改,我是否必须再次重新发布整个项目?

回答

4

由于@rook写道,第一步是使reloadOnChange

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

但在另外,您还需要更改代码,使用IOptionsMonitor<>接口而不是IOptions<>在地方选择注射(见Options Pattern),否则你会发现,新的价值还没有被应用。阅读更多在这post

+0

是的,这是为我做的!我做了@rook所说的话,并认为它会起作用,并想知道为什么没有。不知道会有这个额外的步骤。谢谢! – Daath

3

有一个reloadOnChange参数应该做的伎俩。

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

我也一样。它不工作。 –

+0

查看上面的答案。还有更多的事情要做。 – rook