Azure devops Azure管道在发布期间转换web.config文件

Azure devops Azure管道在发布期间转换web.config文件,azure-devops,Azure Devops,我正在尝试在发布管道中使用web.config转换。然而,无论我在做什么,我总是 2019-11-11T12:19:46.1172474Z##[警告]无法对给定包应用转换。验证以下内容。 我有一个Web.config和一个Web.Elastic.config。该项目的csproj中没有任何.config文件的dependentUpon,并且Web.Elastic.config的内容作为构建操作,并且位于从构建任务生成的zip文件中 此外,我在构建过程中禁用了配置转换,这只是为了确定。我不知道我还

我正在尝试在发布管道中使用web.config转换。然而,无论我在做什么,我总是

2019-11-11T12:19:46.1172474Z##[警告]无法对给定包应用转换。验证以下内容。

我有一个
Web.config
和一个
Web.Elastic.config
。该项目的csproj中没有任何.config文件的dependentUpon,并且
Web.Elastic.config
的内容作为构建操作,并且位于从构建任务生成的zip文件中

此外,我在构建过程中禁用了配置转换,这只是为了确定。我不知道我还能做什么。在IIS Web App部署任务期间使用文件转换任务预览和XML转换选项时都会发生这种情况

文件转换任务的配置如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <apiConfig xdt:Transform="Replace">
    <add key="ClientBasetUrl" value="https://elastic.OURPROJECT.com" />
  </apiConfig>
  <system.web xdt:Transform="Replace">
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6.2" />
    <httpRuntime targetFramework="4.6.1" maxRequestLength="20480" />
  </system.web>
</configuration>

我将我的配置减少到这一点,以查看转换本身是否有问题:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="apiConfig" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </configSections>
  <apiConfig>
    <add key="ClientBasetUrl" value="http://localhost:4200" />
  </apiConfig>
  <system.web>
    <compilation debug="true" targetFramework="4.6.2">
      <assemblies>
        <add assembly="System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </assemblies>
    </compilation>
    <!-- This will handle requests up to 20MB -->
    <httpRuntime targetFramework="4.6.1" maxRequestLength="20480" />
  </system.web>
</configuration>

作为您在上面共享的配置文件中的配置,在我这边应用它时没有任何问题

事实上,在您的构建日志中,它已经向您显示了由什么引起的问题

您可以看到任务只找到一个文件,而在这里它应该匹配两个文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <apiConfig xdt:Transform="Replace">
    <add key="ClientBasetUrl" value="https://elastic.OURPROJECT.com" />
  </apiConfig>
  <system.web xdt:Transform="Replace">
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6.2" />
    <httpRuntime targetFramework="4.6.1" maxRequestLength="20480" />
  </system.web>
</configuration>

这两个文件,一个是配置文件,另一个是转换配置文件。但是在您的构建中,它只能找到一个文件(不确定您共享的日志是否已完成,正如我看到的,它只检测出
Web.config
文件)


此问题应与任务的配置相关。似乎您正在链接工件,并希望将转换应用到该工件中

请修改包或文件夹空白,如图所示:

并将转换规则更改为:

-transform **\*.Elastic.config -xml **\*.config

我猜这意味着你认为不是吗?你能解释一下为什么不能吗?我认为Azure DevOps是一个常用的工具,并且已经有很多关于这个主题的问题被问到了,例如,或者服务器配置问题是离题的,应该被问到。你应该删除这个并在那里提问。我认为我在选择一个标题时做得不好。更改了标题以更清楚地说明这与Azure DevOps服务器配置无关。只想检查以下内容是否对您有用。你现在还面临任何错误吗?如果仍然遇到任何难题,请随时在下面留下评论。如果有帮助,你可以,这也会帮助社区中的其他人谢谢你的回答。我必须继续链接工件,否则它将无法工作,但对转换规则的更改确实解决了问题。我决定在那里特别指定,因为那里有其他配置文件,但这似乎是导致问题的原因。现在它正按预期工作。