Web 部署参数未针对所有服务器更改

Web Deploy Parameters not Changing for All Servers

我们有一个使用 Jenkins、MSBuild 和 Web Deploy 创建的持续交付流程。部署到我们的开发服务器时一切正常,但是,当我尝试在两个新配置的服务器上使用 *.deploy.cmd 文件部署 Web 部署包时,web.config 中定义的更改 parameters.xml 文件未被应用。部署的其余部分运行良好,但对于每个需要更改的参数,我都看到了这样的消息:

Verbose: Parameter entry 'config/1' could not be applied to '<path>\Package\PackageTmp\Web.config'. Deployment will continue with the original data. Details: 
Cannot set a value on node type 'Element'.

由于完全相同的包的转换适用于部署到一台服务器而不是新服务器,这似乎是服务器配置问题,但我已经根据 Microsoft 的 Web 部署安装说明检查了所有内容,它一切看起来都很好。我不是最初在工作文件夹上设置 Web 部署的人,所以我不知道他们可能做了什么不同的事情。我怀疑这与权限有关,但我想检查的几个地方在两台服务器上都是相同的。

我发现了关于此错误消息的其他问题,它们的 parameters.xml 文件中的 XPath 存在问题。我不认为这是我的问题,因为我可以成功部署到我的一台服务器,但这里有一个来自我的 paramters.xml 和 SetParams.xml 文件的示例:

parameters.xml

<parameter name="config">
  <parameterEntry kind="XmlFile" scope="\web.config$" match="//configuration/appSettings/add[@key='config']" />
</parameter>

*.SetParameters.xml

<parameters>
  <setParameter name="config" value="&lt;add key=&quot;config&quot; value=&quot;testing&quot; /&gt;" />
</parameters>

有谁知道如何解决这个问题或我的新服务器需要什么样的额外权限?

回想起来这很明显,但事实证明我们的问题是服务器支持团队安装了错误版本的 Web Deploy。我们需要 3.5 或更高版本,他们安装了 2.10。在新服务器上更新 Web Deploy 解决了这个问题。