プロジェクト内の2つの異なるWCFサービスへの参照があります。あるサービスの参照を更新しましたが、コードが生成されません。reference.csファイルの上部には、「これは生成されたコードです」というコメントがあります。他のプロジェクトで同じサービスを更新することと、他のサービスを更新することはどちらも正常に機能します。問題を引き起こしているのは、この1つのプロジェクトの1つのサービス参照だけであり、Visual Studioから情報を取得していません(コードの生成に失敗したとだけ言っているので、情報を提供しない他のエラーを確認する必要があります)。
「参照されるアセンブリのタイプを再利用する」のチェックを外すと、コードが生成されますが、この1つのプロジェクトを他のプロジェクトと異ならせたくありません。問題を解決したいのですが。再利用タイプオプションを再チェックすると、空のreferences.csファイルが再度生成されます。コレクションの種類も重要ではないようです。
この問題を診断して解決するにはどうすればよいですか?
アップデート:
間違えたようです。サービス参照を更新すると、他のプロジェクトでも生成が中断されるようです。また、これらの警告にも気づきました。
カスタムツールの警告:wsdl:portTypeをインポートできません詳細:WSDLインポート拡張機能の実行中に例外がスローされました:System.ServiceModel.Description.DataContractSerializerMessageContractImporterエラー:名前空間'http://schemas.datacontractのデータコントラクト名'Exception'のISerializableタイプ.org / 2004/07 /System'はインポートできません。データコントラクト名前空間はISerializableタイプ用にカスタマイズできず、生成された名前空間'TheDefaultNamespaceOfTheProject.ServiceReferenceName'は必要なCLR名前空間'System'と一致しません。必要な名前空間が別のデータコントラクト名前空間にマップされているかどうかを確認し、名前空間コレクションを使用して明示的にマッピングすることを検討してください。
明らかに、そこで名前空間を変更しましたが、System.ExceptionをThatNamespace.Exceptionにマップしようとしているようです。なぜそれを行うのでしょうか、そしてどうすればそれを修正できますか?これが全体の鍵だと思います。