.net - 使用 GitHub Actions 在 .net 应用程序中填充特定于环境的变量
问题描述
我已经接管了对当前正在使用 Azure DevOps 部署为 Azure Web 服务的 .net 应用程序的支持。我的当务之急是将管道移动到我已经完成的 GitHub Actions。我无法弄清楚的一件事是如何复制 ADO 当前所做的事情:在部署期间填充 Web 配置设置:
<appSettings>
<add key="APP_CONFIG_URL" value="%APP_CONFIG_URL%" />
有没有办法使用 GitHub 操作来做到这一点?我已经看到一些关于标记化的提及,但这些文章已经有好几年了。如果没有一个好的方法来做到这一点,我最好尝试为每个环境设置不同的配置并处理那里的差异?
解决方案
- 要在操作中使用任何敏感数据/机密(如 Azure 服务主体、应用程序设置或连接字符串),请将它们作为机密添加到GitHub 存储库中,然后在工作流中使用它们。
- 如果您在 app-settings -json 和 connection-strings-json 中没有敏感信息并且不想将其设置为机密,
mask-inputs
请在工作流中设置为 false。 - 默认情况下,
mask-inputs
将为 true。
配置秘密的步骤:
- 在您的存储库 设置 > 秘密 > 添加新的秘密 菜单下定义一个新秘密
- 将az cli命令的内容粘贴为 secret 变量的值。
更新的答案
当应用程序在登台或生产中运行时,环境指示器被省略。
解决方案网页读取appSettings
在Web.config文件中设置的值,以确定应用程序在什么环境中运行:
[!code-xml主要]
该值在测试环境中应该是“Test”,而在暂存和生产环境中应该是“Prod”。
有关您将在发布配置文件转换文件中处理的 A 设置的更多信息,请参阅此文档。
推荐阅读
- python - python 2.7.13中如何使用super()调用基类函数?
- apache-spark - 原因:org.apache.spark.SparkException:写入行时任务失败
- swift - Swift-4 Siren,更新应用程序对话框立即消失
- reactjs - 如何使用 JSX 识别点击了哪个链接。- 反应
- python - 在 Python 中,如何在四个随机数上设置两个负数和两个正数并等于 0?
- react-native - FlatList ref scrollToIndex 不是函数
- powershell - Powershell函数未接收参数
- php - Wordpress ajax 请求无法正常工作
- swift - 保存表格视图单元格
- php - 在 laravel 警报中,视图页面中不起作用