我在 VS 2010 中有一个 silverlight 5 项目,并希望根据我的配置更改其配置文件,就像更改 Web 应用程序的数据库连接字符串一样。
我的 ServiceReferences.ClientConfig 看起来像这样:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IWcfPortal" closeTimeout="00:10:00"
openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
maxBufferSize="25000000" maxReceivedMessageSize="25000000" />
</basicHttpBinding>
</bindings>
<client>
<endpoint name="WcfCslaService" address="http://localhost:22/Services/WcfSlPortal.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfPortal"
contract="WcfPortal.IWcfPortal" />
</client>
</system.serviceModel>
我的 ServiceReferences.MyConfig.ClientConfig 文件(通过右键单击慢猎豹自动添加,添加转换)如下所示:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.serviceModel>
<client>
<endpoint name="WcfCslaService" address="http://192.168.0.0:22/Services/WcfSlPortal.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWcfPortal" contract="WcfPortal.IWcfPortal"
xdt:Transform="Replace" />
</client>
</system.serviceModel>
我的问题是,转换没有发生,而不是替换整个节点(就像在我的 web.config 在同一个解决方案中所做的那样)。我尝试过清理/重建,手动删除 .xap 文件,一次构建一个项目。如果我查看我的 silverlight project\bin 文件夹并解压缩我的 xap 文件,它最终会包含所有 ClientConfig 文件,并且主配置文件保持不变。我的 xap 文件中也有一个错误,在“xdt:Transform”下划线显示“未声明 'http://schemas.microsoft.com/XML-Document-Transform:Transform' 属性”。
如果我右键单击 ServiceReferences.MyConfig.ClientConfig,Preview Transform 它会准确地向我显示它应该做什么(具有更新 IP 地址的相同服务)。另一个疯狂的事情是,这以前是有效的,我不知道我做了什么来破坏它(在我去提交回购之前就坏了)。我已经卸载并重新安装了慢速猎豹,重新启动等。
任何人都知道如何修复这个转换工作?