c# - 如何管理“应用程序。.config”和“dotnet publish”,然后使用 Azure Pipeline 进行部署
问题描述
我有一个 ASP.NET Core API DemoApi.csproj,其中包含三个“app*.config”文件:
- 应用程序配置
- app.preprod.config
- 应用程序.prod.config
在 Azure DevOps 中,构建管道生成工件:
dotnet publish --configuration Release
这产生:
- 演示Api.exe
- DemoApi.exe.config
- 应用程序配置
- app.preprod.config
- 应用程序.prod.config
接下来,使用 Azure Pipeline 任务IIS Web Application Deployment在 IIS 上部署 API 。此任务具有 XML 转换中描述的 xml 配置文件转换机制。
该机制检查所有“$1.$env$.config”并将转换应用于“$1.config”。在我的情况下,当我在 prod 上部署时,这需要“app.prod.config”文件并将转换应用于“app.config”。但是API的配置来自“DemoApi.exe.config”,转换“app.config”是没有用的。
这不是什么大问题,我在构建管道中添加了一项将“app.prod.config”重命名为“DemoApi.exe.prod.config”的任务,现在转换应用于预期文件。但这听起来像一个肮脏的黑客。
第一个问题,为什么“dotnet publish”输出“app.config”?该文件无用,“DemoApi.exe.config”包含“app.config”的内容。
第二个问题,可以用“dotnet publish”重命名吗?
解决方案
推荐阅读
- java - 服务器内存使用量增加并导致服务器崩溃
- excel - Excel 2016 中的搜索按钮
- sql - 如何在案例语句 DB2 sql 中使用“IN”子句
- python - 使用多处理将特殊对象附加到来自不同进程的相同列表
- excel - 为什么我的公式不起作用,除非我先编辑它?
- amazon-web-services - AWS Elastic Beanstalk 定价
- reactjs - 如何在 React-Context 中使用路由器?
- spring - 是否可以针对两个不同的 JobRepositories 配置两个不同的 Spring Batch JobRegistry?
- sparql - SPARQL 构造查询增量变量
- php - 用户如何在 whatsapp 应用程序中与他/她以 html 形式输入的手机号码聊天?