Msbuild 为什么这个web.config转换说它可以';找不到applicationSettings元素?

Msbuild 为什么这个web.config转换说它可以';找不到applicationSettings元素?,msbuild,web-config,publishing,msdeploy,Msbuild,Web Config,Publishing,Msdeploy,在TeamCity中转换web.config文件时出现以下错误。它发生在元素上, 源文档中没有与“/configuration/applicationSettings”匹配的元素 源文件具有此设置。你知道如何解决这个问题吗?我不得不从配置节点中删除namespace属性。声明的模式和我使用的元素之间存在一些冲突 xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" 我想在这里给其他人一个更详细的回答 在Visual Studio

在TeamCity中转换web.config文件时出现以下错误。它发生在元素上,

源文档中没有与“/configuration/applicationSettings”匹配的元素


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

我不得不从
配置节点中删除namespace属性。声明的模式和我使用的元素之间存在一些冲突

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

我想在这里给其他人一个更详细的回答

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

话虽如此,在VisualStudio2010SP1中,我们修复了名称空间错误。因此,您的源web.config以及您的转换必须在xmlns上达成一致,如果一个有,另一个也必须有


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

在转换文件中使用命名名称空间,匹配转换文件中相应的xmlns,是否可以解决此错误?从xml中删除名称空间是不好的——那么从xml处理器的角度来看,它将是完全不同的xml……您不需要命名的ns元素,您可以使它与默认的xmlns一起工作,但它们必须同时位于源和转换上。这么说吧。对于web.config,是否有xmlns没有区别。建议不要使用它(这也解释了为什么在VS中创建新项目时web.config上没有xmlns)。我们不仅对web.config类型的xml=\使用转换,只要您的命名空间声明与document/transform都匹配,它们就应该可以工作。由于一些未知的原因,我收到了以下错误消息“需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义函数。“当我尝试为转换中的所有元素添加前缀时,我不确定我们是否可以轻松地在该生成机器atm上部署SP1。有任何解决此问题的提示吗?我正在寻找解决此问题的方法,这是web上唯一对我有效的答案,谢谢!”!