gpt4 book ai didi

.net - ServiceReferences.ClientConfig 加上缓慢的猎豹不转换

转载 作者:行者123 更新时间:2023-12-01 01:16:11 25 4
gpt4 key购买 nike

我在 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 项目\bin 文件夹并解压缩我的 xap 文件,它最终会包含所有 ClientConfig 文件,而主配置文件则保持不变。我的 xap 文件中也有一个错误,在“xdt:Transform”下划线显示“'http://schemas.microsoft.com/XML-Document-Transform:Transform' 属性未声明。”

如果我右键单击 ServiceReferences.MyConfig.ClientConfig,Preview Transform 它会准确显示它应该做什么(具有更新 IP 地址的相同服务)。另一个疯狂的事情是,这以前是有效的,我不知道我做了什么来破坏它(在我去提交 repo 之前就坏了)。我已经卸载并重新安装了慢猎豹,重新启动等。

任何人都知道如何修复此转换以使其正常工作?

最佳答案

如果您真正想做的只是替换地址,那么您可以尝试这样的操作(注意,我没有使用 SlowCheetah 本身,但也许这种间接方法会给您足够的洞察力来解决问题)。我正在使用内置的转换机制并连接到 BeforeBuildAfterBuild MSBuild 目标。

ServiceReferences.ClientConfig.Template我有类似的东西

<configuration>
<system.serviceModel>
<!-- ... -->
<client>
<endpoint
name="Mine"
address="http://localhost:8080/SomeService.svc"
binding="basicHttpBinding"
bindingConfiguration="..."
contract="..."/>
</client>
</system.serviceModel>
</configuration>

为了替换地址,我使用了转换
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.serviceModel>
<client>
<endpoint
xdt:Locator="Match(name)"
xdt:Transform="SetAttributes(address)"
name="Mine"
address="http://SomethingElse/Services/SomeService.svc"/>

如果您试图替换整个节点,我还没有尝试过,但是虽然很痛苦,但您可能会删除所有不需要的属性,然后添加新的属性。

启动创造真正的转型 ServiceReferences.ClientConfig ,我的 Silverlight 中有以下内容 .csproj文件:
  <Target Name="BeforeClean">
<Delete Files="ServiceReferences.ClientConfig" />
<Message Importance="High" Text="***** Deleted generated ServiceReferences.ClientConfig" />
</Target>
<Target Name="BeforeBuild" Condition="Exists('ServiceReferences.$(Configuration).ClientConfig')">
<!-- this is the file that ultimately we want to populate in a .xap, but this is also not version controlled; effectively it's always generated -->
<Delete Files="ServiceReferences.ClientConfig" />
<!-- transform the template -->
<TransformXml Source="ServiceReferences.Template.ClientConfig" Destination="ServiceReferences.ClientConfig" Transform="ServiceReferences.$(Configuration).ClientConfig" />
<Message Importance="High" Text="***** Generated ServiceReferences.ClientConfig from ServiceReferences.Template.ClientConfig and ServiceReferences.$(Configuration).ClientConfig" />
</Target>
<Target Name="AfterBuild" />

其他一些(可能已经在您的解决方案中正确设置)“明显”要检查的内容包括:
  • 确保您的 Silverlight 项目属性具有正确的 .xap命名并生成 Silverlight list 文件。
  • 确保 Silverlight 应用程序的 Web 宿主项目包含上述项目的名称,并将其放置在 ClientBin 中。用于 Web 中的路径。
  • 确保两个项目的依赖项和构建顺序正确
  • 关于.net - ServiceReferences.ClientConfig 加上缓慢的猎豹不转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978141/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com