在TeamCity中转换web.config文件时出现以下错误。它发生在元素<applicationSettings xdt:Transform="Replace">
上。
源文档中的任何元素都不匹配'/ configuration / applicationSettings'
源文件具有此设置。知道如何解决这个问题吗?
答案 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,因此可以安全地删除它。