.NET Core配置的环境变量与构建配置

时间:2019-10-16 09:59:26

标签: c# .net asp.net-core .net-core asp.net-core-3.0

在开发和生产环境中配置.net核心应用程序最好使用什么:环境变量或构建配置?即我可以将appsettings.*environment*.json绑定到这两种方式

2 个答案:

答案 0 :(得分:2)

我认为这取决于您对环境进展的​​看法。

如果是其构建配置,则每个环境都需要一个“不同”的可执行文件,因为要为每个环境重新构建它,因此您没有测试要实际部署到生产环境中的确切情况。

答案 1 :(得分:2)

内部配置是.NET Framework以来的保留。尽管您可以在.NET Core应用程序中使用它们,但它们的实用程序受到限制。关于指令的唯一用途是执行以下操作的指令:

#if DEBUG
// stuff
#endif

但是,这是一个值得怀疑的做法。

使用.NET Core,范例是您为所有环境发布一次。环境的概念应该独立于代码本身。这样可以确保您的代码在您从dev / test毕业,登台/ QA以及最终进入生产阶段时都能按预期工作,因为代码就是代码。

此外,由于您是专门询问配置的,因此基于.NET Core中基于构建的配置不起作用。没有app.config / web.config,即使有专门支持IIS托管的web.config,.NET Core也不以任何方式实际使用它-只是IIS。

因此,这个问题尚无定论。对于.NET Core中的配置,您使用Microsoft.Extensions.Configuration,它本身依赖于环境的概念,该环境也是基于配置的,而不是基于构建的。实际上,您没有拥有环境变量。该环境也可以通过命令行传递。关键是它设置的是运行时,而不是编译时。