我的 dotnetcore 应用在每个环境中都有一个appsettings.json(例如, appsettings.json 和 appsettings.Development.json ),我会喜欢在我的管道中利用此优势。
我看到了管道的两个选项:
Build Artifact for Dev -> Deploy on Dev -> Build Artifact for Prod -> Deploy on Prod
或
Build Artifact -> Deploy on Dev -> Deploy on Prod
对于第一个选项,我可以将环境设置为构建的参数。
对于第二个选项,我如何才能仅构建一次应用程序,并根据当前部署步骤设置环境?利用我拥有的多个 appsettings.json 。
最后,这些方法是否与最佳做法保持一致?如果没有,对于具有多个环境的管道,最佳做法是什么?
答案 0 :(得分:1)
通常,我们可以生成单个工件,然后将其部署到不同的环境,并在其自己的阶段发布阶段中的任何环境下执行不同的转换。这意味着我们可以在每个发行版环境中更改和覆盖appsettings.json
中定义的设置。
有关如何使用.json文件进行转换的信息,请参考File transforms and variable substitution reference。
此外,我们可以尝试安装Replace Tokens扩展名,然后使用Replace Tokens任务加载和更改每个发行环境/阶段中appsettings.json
文件中定义的设置。
您还可以转换设置或使用File Creator创建新的appsettings.json
文件来覆盖现有文件。
以下博客供您参考:
答案 1 :(得分:0)
您可以使用Azure AppConfiguration并将其添加为配置的额外来源。这样,您的构建/发布过程就变得非常简单。
它非常强大:您只能选择部分配置(通过过滤器),可以具有功能标志,并且可以具有机密(来自链接的密钥库)。