Iis 7 为什么Web部署会忽略我的setParameter标记?

Iis 7 为什么Web部署会忽略我的setParameter标记?,iis-7,visual-studio-2012,webdeploy,Iis 7,Visual Studio 2012,Webdeploy,我有一个Web部署包,它生成App.SetParameters.xml文件以及所有其他包文件。SetParameters文件有几个setParameter节点,它们应该更新连接字符串,但每当我执行web部署脚本时,它总是报告0参数已更改。查看部署的Web.config文件表明,它们确实没有更新 部署脚本的详细输出并没有说明它为什么跳过我的参数;它甚至没有提到他们。但是,如果我将其中一个setParameter标记更改为parameter标记,则会出现错误: 错误:已定义参数“Connection

我有一个Web部署包,它生成App.SetParameters.xml文件以及所有其他包文件。SetParameters文件有几个
setParameter
节点,它们应该更新连接字符串,但每当我执行web部署脚本时,它总是报告
0参数已更改
。查看部署的Web.config文件表明,它们确实没有更新

部署脚本的详细输出并没有说明它为什么跳过我的参数;它甚至没有提到他们。但是,如果我将其中一个
setParameter
标记更改为
parameter
标记,则会出现错误:

错误:已定义参数“ConnectionString-Web.config连接字符串”

因此,它显然是在我的Web.config中找到这个参数。我完全不明白为什么它会跳过这样的参数

环境:

  • Visual Studio 2012
  • Web部署3.0
  • Windows Server 2008 R2
  • IIS 7

此问题与中提出的问题有关。因为我将此解决方案从Visual Studio 2010移动到了Visual Studio 2012,所以我的所有Web.config文件仍将此作为其根节点:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
但是,此错误仅在构建Web部署包时出现,而不是在运行Web部署包时出现,因此Web部署只是认为没有要更新的配置部分。您可能认为Web.config文件中没有任何配置节是一个至少值得向用户发出警告的问题,但显然不是

解决方案是从基本Web.config文件的
节点中删除
xmlns
属性,从Visual Studio发布包,并确保“源文档中没有元素”警告不再出现在输出中。在这之后,Web部署应该可以毫无问题地遵守您的
setParameter
说明

No element in the source document matches '/configuration'