为什么这个web.config转换说它找不到applicationSettings元素?

时间:2011-07-27 13:11:41

标签: msbuild web-config publishing msdeploy

在TeamCity中转换web.config文件时出现以下错误。它发生在元素<applicationSettings xdt:Transform="Replace">上。

  

源文档中的任何元素都不匹配'/ configuration / applicationSettings'

源文件具有此设置。知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:26)

我不得不从configuration节点中删除namespace属性。声明的架构和我正在使用的元素之间存在一些冲突。

xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"

答案 1 :(得分:17)

我想在这里为其他人提供更详细的答案。

在Visual Studio 2010中,web.config转换引擎不遵守xmlns声明。因此,如果您的源web.config具有xmlns声明,并且您创建了转换,那么转换将不起作用。这是因为当我们执行XPath来识别应该替换的源时,我们找不到该值。为了解决这个问题,你应该删除源web.config上的xmlns声明以及转换。

话虽如此,在Visual Studio 2010 SP1 中,我们修复了命名空间错误。因此,你的源web.config以及你的转换必须就xmlns达成一致,如果一个人拥有它,另一个必须拥有它。

我怀疑你使用的是pre-SP1位,但不确定。为了确保在升级到SP1时行为不会改变,我建议您从源web.config以及转换中删除xmlns声明。在web.config文件中不需要xmlns,因此可以安全地删除它。