【发布时间】:2021-01-29 06:36:58
【问题描述】:
我有一个 .net core CONSOLE 应用程序。在我正在阅读的代码中,特定于 appsettings.dev.json、appsettings.uat.json 等的适当环境中。
var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetParent(AppContext.BaseDirectory).FullName)
.AddJsonFile("appsettings.json", false)
.AddJsonFile($"appsettings.{environmentName}.json", optional: true)
.AddEnvironmentVariables()
.Build();
当它直接在 Visual Studio 中运行时,ASPNETCORE_ENVIRONMENT 变量是从 launchSettings.json 文件或修改项目属性、调试选项卡并读取正确的 appsettings.environment.json 文件来设置的。
当我想通过 Visual Studio 发布项目时,即右键单击项目并发布(即我不想通过命令行执行此操作),我选择保存在 PublishProfile 文件夹中的适当 .pubxml 文件。在这个 .pubxml 文件中,我设置了 environmentName。
<EnvironmentName>dev</EnvironmentName>
但是,当运行由发布进程生成的 exe 时 - 上面指定的 environmentName 变量始终为空白,因此它不会选择正确的 environmentName 设置,因此不会读取相应的 appsettings.environment.json 文件在。
【问题讨论】:
标签: c# .net-core console-application