4

Enterprise Library 3.1 2007 年 5 月バージョンを使用しているときに、このエラーが発生しました。製品を開発しており、Subversion Trunk ディレクトリの下に共通の lib ディレクトリがあります。

<>\Trunk\Lib\ にすべてのサードパーティ DLL を配置します。この中には、\Program Files\Microsoft Enterprise Library May2007\bin からすべての dll をコピーした Microsoft\EnterpriseLibrary\v3.1 があります。開発者の 1 人がこのマシンにソース コードをインストールするまで、すべてが正常に機能していました。ソース コードのインストールの最後にいくつかの dll がコピーされましたが、それが完了すると、プロジェクトを実行できなくなりました。彼はいつもこのエラーを受け取ります

'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つ。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)」

ここで何が問題なのですか?ソースコードがインストールされたら、すべてをビルドして、ソースコードの親ディレクトリ内の bin ディレクトリにコピーするだけだと思っていました。また、Microsoft Enterprise Library May 2007\bin ディレクトリから Dll を製品開発ディレクトリにコピーし、copylocal フラグを true に設定して参照をプロジェクトにコピーしました。

誰でもここで私を助けてくれますか

RK

4

4 に答える 4

7

以前は、署名されたバージョンの dll に対して開発し、署名されていないバージョンのみが利用可能な場所に展開したときに、それを取得していました。

また、fuslogvw.exe . 毎日。時間。

于 2008-12-09T11:22:13.290 に答える
1

エラーは、開発者が署名なしのソース コード コンパイルに対してコードをコンパイルしたことにあると思います。

コードをコンパイルする前に、署名済みの DLL への参照を必ず追加してください。

Microsoft.Practices.EnterpriseLibrary.Data、バージョン = 3.1.0.0、カルチャ = ニュートラル、PublicKeyToken = null

次のようにする必要があります。

Microsoft.Practices.EnterpriseLibrary.Data、バージョン = 3.1.0.0、カルチャ = ニュートラル、PublicKeyToken = fa03fef243232

于 2008-12-09T15:02:25.343 に答える
0

アセンブリ読み込みのデバッグを開始するには、こちらをお読みください。

つまり、Fusion ログで詳細を確認する必要があります。

「[yourAssembly] という名前の見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」というメッセージの場合 (hresult FUSION_E_REF_DEF_MISMATCH、0x80131040 の場合): Fusion ログには、アセンブリ参照のどの部分が見つかったものと一致しなかったかが示されます。これは、アセンブリ名、カルチャ、公開キー (またはトークン)、またはバージョン (見つかったアセンブリが厳密な名前であった場合) になります。

于 2008-12-09T11:20:46.663 に答える
0

おそらく、dll の Assembly- および FileVersion を確認する必要があります。それらが一致しない場合、この例外が発生する可能性があります。

于 2008-12-09T10:37:30.090 に答える