我正在使用内置xdt内容的vs 2010发布网站。我知道转换是有效的,因为web.config的其他元素正在转换。
这是导致问题的转换语句:
<param name="ssrsServiceUrl" value="thevalue" xdt:Locator="XPath (/configuration/unity/container/register[@name='ReportingRegistration']/constructor/param[@name='ssrsServiceUrl'])" xdt:Transform="SetAttributes(value)"/>
这是配置文件(仅限相关部分)
<?xml version="1.0"?>
<configuration>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<container>
<register name="ReportingRegistration" type="IMyType" mapTo="MyType">
<lifetime type="singleton"/>
<constructor>
<param name="ssrsServiceUrl" value="foovalue"/>
</constructor>
</register>
</container>
</unity>
</configuration>
我省略了web.config中的多个参数。
答案 0 :(得分:0)
事实证明,问题是Unity块中定义的命名空间。我把它拿出来解决了这个问题。我不确定为什么会这样做。我相信它是.net中XPath查询解析器实现的限制,而不是XPath本身。