如何更改发布配置以根据设置发布不同版本的文件



您能探讨一下我们如何更改发布配置,以便根据这些设置发布不同版本的文件吗?">

也就是说,我们有三个版本的文件:EmailConfig.json(dev(、EmailConfig.Uat.json(uat(和EmailConfig.Live.json(live(。

根据设置,文件的正确版本将发布为EmailConfig.json

你不能按照你的要求去做。不可能发布json文件的不同版本。您可以在这里找到pubish命令的文档:https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-publish

如果我是你,我会把EmailConfig文件的内容作为"子对象"传递到appsettings文件中,比如:

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"EmailConfig": {
"YourProperty1": "",
"YourProperty2":  ""
},
"AllowedHosts": "*"
}

我会为我想要部署的每个环境创建一个版本的appsettings文件,环境名称为appsettings.dev.json、appsettings.live.json等。然后在StartUp构造函数中添加以下内容:

var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var confBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env}.json", true)
.AddEnvironmentVariables();

通过这种方式,您将始终使用特定环境文件的值覆盖appsettings.json文件的值。

最后,为了在运行应用程序的机器中拥有正确的ASPNETCORE_ENVIRONMENT变量,您可以在每台机器上设置该变量,也可以将环境名称作为发布配置的一部分(从一开始就希望如此(,例如:

dotnet publish /p:Configuration=Release /p:EnvironmentName=Development

您可以检查:如何根据发布配置更改硬编码变量?

相关内容

  • 没有找到相关文章

最新更新