在TeamCity中转换web.config文件时出现以下错误。它发生在元素<applicationSettings xdt:Transform="Replace">
上。为什么这个web.config转换说它找不到applicationSettings元素?
在源文档中没有元素相匹配 '/配置/的applicationSettings'
源文件具有该设置。任何想法如何解决这个问题?
在TeamCity中转换web.config文件时出现以下错误。它发生在元素<applicationSettings xdt:Transform="Replace">
上。为什么这个web.config转换说它找不到applicationSettings元素?
在源文档中没有元素相匹配 '/配置/的applicationSettings'
源文件具有该设置。任何想法如何解决这个问题?
我不得不从configuration
节点中删除命名空间属性。声明的模式和我正在使用的元素之间存在一些冲突。
xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
我想给别人这里更详细的解答。
在Visual Studio 2010中,web.config转换引擎不尊重xmlns声明。因为如果你的源web.config有一个xmlns声明,并且如果你创建了一个转换,那么这个转换将不起作用。这是因为当我们执行XPath来识别应该被替换的源时,我们无法找到值。为了解决这个问题,你应该移除源web.config中的xmlns声明以及变换。
就这么说,在Visual Studio 2010中SP1我们修复了名称空间错误。所以你的源代码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 = \ –
我正在为这个问题寻找一个解决方案,这是唯一在网络上为我工作的答案,谢谢! – saman0suke