0

我有一个 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”重命名吗?

4

0 回答 0