首页 > 解决方案 > ASP Net Core 多环境发布

问题描述

来自 .NET MVC 世界,我对 .NET Core 如何处理多环境部署感到困惑。(开发、测试、生产)

这里使用的技术是 Bamboo (Build Server) + Octopus Deploy (CD)。

.NET Core 似乎改为使用 appsettings,而 web.config 仅用于 IIS 托管。

在阅读了一些指南后,建议将环境变量“ASPNETCORE_ENVIRONMENT”添加到项目中以定义当前所在的环境。

这是我在 Bamboo 中构建的命令。 dotnet publish -c Test ${bamboo.build.working.directory}\HelloWorld.sln

问题... 1. 我有 appsettings.json、appsettings.Test.json、appsettings.Production.json。看起来应用程序根据 ASPNETCORE_ENVIRONMENT 值知道要从哪个 appsettings 文件中读取。

  1. 如何根据我要部署的环境告诉 Octopus 使用正确的文件?

标签: deploymentcoreoctopus

解决方案


打包一个变量和多个配置文件会使事情变得过于复杂,尤其是在您使用 Octopus Deploy 的情况下。

拥有多个文件的唯一原因.environment.json是因为它们可能保存在源代码控制中并且它们的值已经设置 - 所以环境变量可能都来自源代码,而不是发布管理器。否则,它们将是相同的文件,而 Octopus 仍将对其进行转换(这使它们变得多余)

我的建议是移动到单个文件,并将变量移动到 Octopus Deploy 中。删除ASPNETCORE_ENVIRONMENT,您只需要一个文件appSettings.json,可以在部署期间转换到任何环境。

ASP.NET Core Web 应用程序 - Octopus 部署文档

希望这可以帮助


推荐阅读