我不能完全弄清楚我在这里做错了什么。我有一个web配置节点:使用web.config替换整个节点变换导致错误
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
....
,我想替换这跟:使用的MSBuild TransformXml
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
。我无法完全弄清楚xdt属性的正确语法。下面(看起来正确的给我):
<dependentAssembly xdt:Transform="Replace"
xdt:Locator="Condition(param/@name='Newtonsoft.Json'">
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
是导致错误:
XmlNodeException : Transform and Locator attributes must contain only a type name, or a type name followed by a list of attributes in parentheses.
我缺少什么吗?
我不能改变原来的顺便说一句,这必须使用变换完成。
你可以试试这个你变换 - '' –
Alex
这会导致错误'XmlNodeException:'/ configuration/runtime/_defaultNamespace:assemblyBinding/_defaultNamespace:dependentAssembly [./_ defaultNamespace:assemblyIdentity/@ name ='Newtonsoft.Js on']'有一个无效的标记。“@alex。谢谢 – Liam
嗯,唯一的地方,我可以找到你最初得到的错误是 - https://github.com/micahlmartin/XmlTransformer/blob/master/src/XmlTransformer/XmlElementContext.cs#L292 - 这是第三方解析器...? – Alex