2

我已经浏览了很多关于 stackoverflow 的帖子,但无法解决这个问题。我最近从 SL4 迁移到 SL5,后者又将 wcf ria 升级到 v1sp2。

注意:现在引用的所有二进制文件都是 v5.0.5.0,但 System.ServiceModel.DomainServices.Client(web).dll 仍然是 2.0.5.0 版本(通过 RIA 获得)。

在为我的 wcf 服务生成服务引用之后,无法重用引用程序集中的类型 - 它的重新生成类型导致引用不明确。

使用 svcutil 命令测试包含这些类型的二进制文件是要求 SL4 版本的 System.Windows 不可用,因此失败。

svcutil /t:code http://localhost:9357/Service1.svc /r:binarywithtypes.dll  

错误:无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter 错误:无法加载文件或程序集“System.Windows,版本=2.0.5.0,文化=中性, PublicKeyToken=7cec85d7bea7798e' 或其依赖项之一。该系统找不到指定的文件。

这么几个问题:

  1. 我假设它要求 SL4 二进制文件的原因是因为某些依赖程序集仍然是 SL4。从上面的参考资料来看,它可能是 System.ServiceModel.DomainServices.Client.dll。那么我在哪里可以找到这个二进制文件的 v5.0.5.0 呢?(ria sp2 仍然提供 v2.0.5.0)

  2. 还是有其他原因导致在迁移到 Silverlight 5 后生成引用无法识别被引用程序集中的类型?

  3. 任何其他方式我可以生成引用重用已经引用的类型?

注意:过去在 SL4 中一切正常!

[更新]:命令行工具 slsvcUtils 工作正常(VS2010Sp1 损坏)并且能够重用引用类型。供其他人参考,slsvcutils 用法:

"%PROGRAMFILES(X86)%\Microsoft SDKs\Silverlight\v5.0\Tools\SlSvcUtil.exe" /language:cs /ct:System.Collections.ObjectModel.ObservableCollection`1 /n:*,<namespace> http://localhost:9357/Service1.svc /r:bin\debug\<slDllWithTypes.dll> /r:"%PROGRAMFILES(X86)%\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\system.windows.dll" /out:"Service References\Reference.cs" /enableDataBinding /config:temp.ClientConfig
4

0 回答 0