首页 > 解决方案 > 使用 GitHub Actions 在 .net 应用程序中填充特定于环境的变量

问题描述

我已经接管了对当前正在使用 Azure DevOps 部署为 Azure Web 服务的 .net 应用程序的支持。我的当务之急是将管道移动到我已经完成的 GitHub Actions。我无法弄清楚的一件事是如何复制 ADO 当前所做的事情:在部署期间填充 Web 配置设置:

<appSettings>
    <add key="APP_CONFIG_URL" value="%APP_CONFIG_URL%" />

有没有办法使用 GitHub 操作来做到这一点?我已经看到一些关于标记化的提及,但这些文章已经有好几年了。如果没有一个好的方法来做到这一点,我最好尝试为每个环境设置不同的配置并处理那里的差异?

标签: .netazuredevopsgithub-actions

解决方案


  • 要在操作中使用任何敏感数据/机密(如 Azure 服务主体、应用程序设置或连接字符串),请将它们作为机密添加到GitHub 存储库中,然后在工作流中使用它们。
  • 如果您在 app-settings -json 和 connection-strings-json 中没有敏感信息并且不想将其设置为机密,mask-inputs请在工作流中设置为 false。
  • 默认情况下,mask-inputs将为 true。

配置秘密的步骤:

  • 在您的存储库 设置 > 秘密 > 添加新的秘密 菜单下定义一个新秘密
  • 将az cli命令的内容粘贴为 secret 变量的值。

更新的答案

当应用程序在登台或生产中运行时,环境指示器被省略。

解决方案网页读取appSettingsWeb.config文件中设置的值,以确定应用程序在什么环境中运行:

[!code-xml主要]

该值在测试环境中应该是“Test”,而在暂存和生产环境中应该是“Prod”。

有关您将在发布配置文件转换文件中处理的 A 设置的更多信息,请参阅此文档。


推荐阅读