0

私のプロジェクトには WCF サービスがあります。サービス コントラクト インターフェイスを使用して別のアセンブリを参照しています。キーを使用して契約で参照に署名し、契約とサービスに変更を加えるまで、すべてがうまくいきました。

再構築後、次のような例外が発生し始めました。アセンブリ ZZZ の YYY 型のメソッド XXX には実装がありません。

サービスはコントラクトで古い dll を使用しているようですが、その理由が見つかりません。リフレクターを使用して生成されたdllを調べると、古いコードはありません-契約とサービスの署名は同一です。契約から署名を削除すると、すべてが完璧に機能します。

テスト目的で、サービスは Cassini Web サーバーで動作しています。また、IISで実行しようとしました。私の以前の解決策は、ASP.NET 一時ファイルを削除することでした。今は役に立ちません。

契約による参照は、SharePoint のニーズに合わせて署名されています。この参照をGACから削除すると、エラーも消えます。しかし、なぜサービス プロジェクトは GAC でこの dll を探しているのでしょうか? 回避策はありますか?

提案をいただければ幸いです。

4

1 に答える 1

0

それがCLRの特徴です。アセンブリが厳密な名前の場合 - CLR は GAC でそれを検索します。したがって、私の場合、GAC に正しいバージョンの DLL を保持するか、そこから削除する必要があります。

于 2012-08-31T22:32:07.937 に答える