3

次のエラーを解決しました。

System.IO.FileLoadException: ファイルまたはアセンブリ 'Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。

奇妙なことに、少し断続的でしたが、リリースビルドを作成したときにのみ問題のように見えました.デバッグビルドを作成すると、問題が一時的に解消される場合がありました.

プロジェクト Microsoft.Practices.EnterpriseLibrary.Data.dll に、使用されていないエンタープライズ ライブラリ dll があり、バージョン 5.0.505.0 であり、Microsoft の v. 5.0.505.0 を取り込もうとしていたようです。 .Practices.EnterpriseLibrary.Common、この 'Common' dll の v. 5.0.414.0 が既にプロジェクトにあった場合。これが主にリリース モードで発生している理由を特定しませんでした。

これを追跡し、原因を明確に特定するのに役立つ何かは、どの dll が私の Visual Studio プロジェクトに別の dll をプルしているかを特定することでしたか? 問題の原因となっている dll から移動して、どの dll に含まれているかを確認したいと考えています。この答え:

Visual Studio が DLL を bin ディレクトリにコピーすることを決定する理由を調べる

ildasm またはリフレクターを使用できるとのことですが、これらのツールを使用して何をどのように探す必要がありますか? これをグーグルで検索しましたが、何も表示されませんでした。

ちなみに、リリースモードに切り替えると問題が発生する理由についてのアイデアはありますか? これを行うと、Visual Studio が Microsoft.Practices.EnterpriseLibrary.Common のリリース バージョンをどこかからプルしようとしたのではないかと思いましたが、それは間違ったバージョンですが、これは「サード パーティ」であるため、私には意味がありません (Microsoft ) 既にリリース モードになっているライブラリの場合、間欠性については説明されておらず、個々のプロジェクトをリリース モードに切り替えると外部ライブラリへの参照に影響する理由がわかりません。

4

0 に答える 0