2016-10-19 6 views
0

私はDLLの形で2つの参照アセンブリを持つWebアプリケーションを持っています。 DLL Primary.dllとSecondary.dllを呼び出します。 Secondary.dllはPrimary.dllに依存しています。2つのdllを持つ1つのWebアプリケーション。 1つのDLLは、他のDLLに依存しています。なぜ私は両方のDLLを更新する必要がありますか?

Webアプリケーションで使用するために、Primary.dllに機能を追加する必要があります。これには新しいバージョンが必要です。この新しい機能はSecondary.dllでは必要ありません。 Secondary.dllには大きな変更はありません。

は今Secondary.dll内のコードのビットがトリガされたときに、私は次のエラーを取得する:

「ファイルまたはアセンブリ 『Primary.dll』またはその依存関係の1つをロードできませんでし位置アセンブリのマニフェストを。定義はアセンブリ参照に一致する。しないSecondary.dllプロジェクトに偽の「値「Secondary.dllがPrimary.dll

の特定のバージョンを探している

これはSpecificVersion =を作ることによって、単純に解決さ」ファイル?

もしそうでなければ、私はSecondary.dllがそこにあるようにGACにPrimary.dllの古いバージョンを保存することを考えました。しかし、これを避けたい場合は可能です。

これで、Webアプリケーションで使用するためにPrimary.dllを変更するたびに、更新されたPrimary.dllへの参照でSecondary.dllを再構築して再バージョンする必要がありました。

Secondary.dllの参照を新しいバージョンのPrimary.dllに更新する必要はありませんか?

+0

あなたはあなたのアセンブリに署名していますか? – bib1257

+0

primary.dllのみが署名されています。しかし、それはsecondary.dllのオプションです –

答えて

1

変更が本当にが破壊されていない場合、この方法で試してください:あなたのPrimary.dllの

  1. チェックアセンブリ属性と署名と自動生成されたアセンブリのバージョン(変更1.0.0を取り除く*にします。 1.0.0.0)。
  2. それが役に立たない場合は、ILSPYユーティリティを使用してセカンダリとプライマリを開き、Primary.dllの正確な参照を確認し、Primary.dllの実際の完全なアセンブリ名と比較してください。プライマリとセカンダリの両方で参照できる他のdllへの参照もチェックしてください。
  3. 役立つことができない場合、異なるメタデータを持つPrimary.dllアセンブリの複数のファイルがあり、アセンブリローダーが間違ったものを読み込む可能性があります。間違ったファイルを見つけて削除するか、Fusion Log Viewerユーティリティを使用してアセンブリのバインディングを調べるだけです。多分、this can help

調査をより簡単にするには、Webアプリケーションの代わりにSecondary.dllを参照して、単純なほぼ空のConsoleApplicationを使用します。

関連する問題