deployment - 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 文件中读取。
- 如何根据我要部署的环境告诉 Octopus 使用正确的文件?
解决方案
打包一个变量和多个配置文件会使事情变得过于复杂,尤其是在您使用 Octopus Deploy 的情况下。
拥有多个文件的唯一原因.environment.json
是因为它们可能保存在源代码控制中并且它们的值已经设置 - 所以环境变量可能都来自源代码,而不是发布管理器。否则,它们将是相同的文件,而 Octopus 仍将对其进行转换(这使它们变得多余)
我的建议是移动到单个文件,并将变量移动到 Octopus Deploy 中。删除ASPNETCORE_ENVIRONMENT
,您只需要一个文件appSettings.json
,可以在部署期间转换到任何环境。
ASP.NET Core Web 应用程序 - Octopus 部署文档
希望这可以帮助
推荐阅读
- html - Ant-Design 的 `Popover` 在 `content` 足够大时会出现锯齿,如何解决?
- javascript - 接口中的“字符串”类型不存在属性“过滤器”
- sparql - Wikidata:如何通过 SPARQL 查询“官方名称”(P1448)的“语言”?
- javascript - 如何通过 Github API 将内容上传到隐藏文件夹名称?
- amazon-web-services - Dockerfile: COPY static Swagger no such file or directory 错误
- python - np.where 条件选择奇数元素,其中条件指定选择偶数元素
- javascript - npm-config 环境变量
- angular - ngClass 的角度动态变量
- apache-nifi - executesql 和 executesqlrecord 有什么区别
- reactjs - 在 ReactJs 中传递 API 数据