私はstackoverflowに関する多くの投稿を経験しましたが、この問題に到達できませんでした. 最近、SL4 から SL5 に移行し、wcf ria を v1sp2 にアップグレードしました。
注 : 現在参照されているバイナリはすべて v5.0.5.0 ですが、System.ServiceModel.DomainServices.Client(web).dll はまだバージョン 2.0.5.0 (RIA で取得) です。
この後、wcf サービスのサービス参照を生成すると、参照されたアセンブリで型を再利用できなくなります。型を再生成すると、あいまいな参照が発生します。
svcutil コマンドを使用して、型を含むバイナリをテストすると、利用できない System.Windows の SL4 バージョンが要求され、失敗します。
svcutil /t:code http://localhost:9357/Service1.svc /r:binarywithtypes.dll
エラー: wsdl:portType をインポートできません 詳細: WSDL インポート拡張機能の実行中に例外がスローされました: System.ServiceModel.Description.DataContractSerializerMessageContractImporter エラー: ファイルまたはアセンブリを読み込めませんでした 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' またはその依存関係の 1 つ。システムは、指定されたファイルを見つけることができません。
いくつかの質問:
SL4 バイナリを要求する理由は、一部の依存アセンブリがまだ SL4 であるためだと思います。上記の参照から、それは System.ServiceModel.DomainServices.Client.dll である可能性があります。では、このバイナリの v5.0.5.0 はどこにありますか? (ria sp2 はまだ v2.0.5.0 を提供します)
または、Silverlight 5 に移行した後、参照の生成で参照されたアセンブリの型を認識できない理由が他にありますか?
既に参照されている型を再利用して参照を生成できる他の方法はありますか?
注: SL4 で完全に正常に動作していたもの!
[UPDATE]:コマンド ライン ツール 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