【发布时间】:2017-03-28 15:39:45
【问题描述】:
我在我的项目中添加了额外的 json 配置文件
appsettings.DEV.json
appsettings.QA.json
并根据环境将它们加载到Startup函数中:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
...
而且我了解如何更改环境:在项目属性中修改ASPNETCORE_ENVIRONMENT 环境变量的值。但是,似乎无法根据配置指定不同的环境变量,下拉列表被标记为“N/A”并被禁用。
我看到的唯一选择是手动更改环境变量值,以更改使用的 appsettings。我确定有一种方法可以自动完成,否则您将如何使用 CI? (除了使用脚本来改变环境变量,必须有更简单的方法)。
这里的目标是为三个环境设置自动构建和持续集成:DEV、QA 和 PROD。 DEV 和 QA 在同一台机器上,所以设置手动指定环境的环境变量不是一个选项。
【问题讨论】:
-
通过配置文件下拉菜单添加一个新配置文件或在launchsettings.json中手动添加一个
-
@EricB 如何将配置文件与构建配置相关联?或者,如果不是构建配置,您如何指定构建/发布时使用的配置文件? (我的目标是为不同的环境设置自动构建和持续集成,因此手动更改环境或配置文件不是一种选择)
-
那么听起来你可以访问目标机器并手动设置环境变量,但它应该是一次性的。
-
@EricB 这发生在我身上,但是我们在同一台机器上托管了两个不同的环境(DEV 和 QA),而生产在它自己的机器上。因此,此解决方案不适用于 DEV|QA
-
我以前从未使用过该提供程序,您现在只能靠自己了:P
标签: c# .net json asp.net-mvc asp.net-core