azure - 跨项目和环境共享/转换应用程序设置
问题描述
我得到了一个包含多个项目(函数应用程序和一个 Web API)的 Visual Studio 解决方案和一个在所有项目之间共享的数据层。appsettings.json
我已经根据这篇文章设置了解决方案,因此所有项目都共享相同的配置( ): https ://andrewlock.net/sharing-appsettings-json-configuration-files-between-projects-in-asp-net-core /
所有项目都基于.net core。
我已经为开发环境设置了构建和发布管道。但我需要一个测试和生产环境。如何在将共享配置发布到测试和生产环境之前对其进行转换?
解决方案
你没有。这不是 ASP.NET Core 中配置的工作方式。配置被覆盖,而不是转换。如何应用不同的配置源有一个操作顺序,基本上就是它们的注册顺序。默认值为 JSON < 特定于环境的 JSON < 用户机密 < 环境变量 < 命令行参数。
如果您需要配置因环境而异,您将依赖环境特定的 JSON 文件(用于常规配置)或环境变量和/或 Azure Key Vault(用于机密)之类的东西。由于所有这些都在配置注册的后期出现,因此您在此处设置的任何值都将覆盖appsettings.json
.
对于环境特定的 JSON 之类的内容,加载取决于 的值ASPNETCORE_ENVIRONMENT
,可以将其设置为环境变量或作为命令行参数传递--environment
。在任何一种情况下,值集都对应于 的{environment}
部分appsettings.{environment}.json
。换句话说,如果您将环境设置为Production
,那么appsettings.Production.json
将被加载到配置中(如果存在)。环境变量与环境本身相关,因此不依赖于任何特定的环境值。
推荐阅读
- javascript - JavaScript 字母替换代码,而不是替换大写?
- flutter - Flutter Provider Change Notifier 内的数据未更新
- google-analytics - 以编程方式解析 Google Analytics “您的用户访问了哪些页面?” 日复一日?
- javascript - 使用useContext在React.js中进行过滤后如何重新获取数据
- go - 如何信任自签名证书
- jpa - JPA:EclipselInk:持久化时对象无效
- mysql - MySQL - 填充 EER 图中的表并生成 .sql 文件
- python - 使用 API 时的 KeyError 处理
- python - python - 如何允许输入在python中为小写和大写?
- laravel - 图像未找到 404 但图像路径在 Laravel 中正确