FileTransform @ 1任务未按预期工作

时间:2019-09-30 20:28:05

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我正在使用yaml FileTransform @ 1转换我的文件,但无法正常工作。它只是跳过更新文件

尝试使用xmlTransformationRules并声明文件类型和tragetfiles,但似乎无济于事

    - task: FileTransform@1
      inputs:
        folderPath: '$(build.artifactStagingDirectory)/**/${{ parameters.projectToDeploy }}.zip'         
        enableXmlTransform: true
        xmlTransformationRules: '-transform **\MyConfig.Dev.config -xml **\MyConfig.config -result **\MyConfig.config'        

MyConnfig.config

<?xml version="1.0" encoding="utf-8"?>
<authenticationConfig xmlns:config="urn:telerik:sitefinity:configuration" xmlns:type="urn:telerik:sitefinity:configuration:type" config:version="11.1.6800.0">
    <securityTokenServiceSettings>
        <identityServerSettings enableLogging="True" mapUsersViaEmail="True" />
        <authenticationProviders>
                <add somecustomvalue ="1">
        </authenticationProviders>
    </securityTokenServiceSettings>
</authenticationConfig>

MyConfig.Dev.Config

<?xml version="1.0" encoding="utf-8"?>
<authenticationConfig xmlns:config="urn:telerik:sitefinity:configuration" xmlns:type="urn:telerik:sitefinity:configuration:type" config:version="11.0.6700.0"  xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <securityTokenServiceSettings xdt:Transform="Replace">
    <identityServerSettings enableLogging="True" mapUsersViaEmail="True" />
    <authenticationProviders >
      <add mynewvalue="2"/>
    </authenticationProviders>
  </securityTokenServiceSettings>
</authenticationConfig>

我遇到的新错误是

2019-09-30T23:49:01.0338926Z ##[warning]Can\'t find loc string for key:FailedToApplySpecialTransformation 
2019-09-30T23:49:01.0348290Z ##[warning]FailedToApplySpecialTransformation

1 个答案:

答案 0 :(得分:0)

此问题是由您为配置文件名写的不正确引起的。您应该将xmlTransformationRules的值更改为'-transform **\MyConfig.Dev.config -xml **\MyConnfig.config -result **\MyConfig.config'。因为您将源xml文件名定义为MyConnfig.config

请参阅此FileTransform task源代码。它的实际应用脚本为apply transform。您会看到收到的错误消息是因为isTransformationAppliedfalse,并且由于文件名彼此不匹配,所以无法执行for循环。

enter image description here

错误消息表示抱歉,我认为您提供的文件与提到的规则不匹配,因此我无法帮助您应用此转换过程。


第一个问题将得到解决,但是现在,在您的MyConfig.Dev.Config文件中,它似乎是无效的xml。因为我测试了您的配置文件,并收到错误消息:

The 'add' start tag on line 6 position 18 does not match the end tag of 'authenticationProviders'

在MyConnfig.config文件中,您在标签/中丢失了<add>