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

sam*_*sam 23 msbuild web-config publishing msdeploy

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

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

源文件具有此设置.不知道怎么解决这个问题?

sam*_*sam 28

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

xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
Run Code Online (Sandbox Code Playgroud)

  • 我一直在寻找解决此问题的方法,这是网络上唯一对我有用的答案,谢谢! (2认同)

Say*_*imi 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,因此可以安全地删除它.