いくつかの回帰テストを実行するためのテストアプリを書いています。アイデアは、ライブラリの複数のバージョンに対してテストを実行できるようにすることです。私の目標は、キーがバージョン文字列( "3.0.0.0"など)で、値がアセンブリインスタンスであるディクショナリにdllをロードすることです。1つのアセンブリを動的にロードしてそのメソッドを呼び出すことはできますが、2つ目のアセンブリをロードしようとすると、次の例外が発生します。
The located assembly's manifest definition does not match the assembly reference.
次の行でアセンブリをロードしています。
asm = Assembly.LoadFrom(lib, hash, System.Configuration.Assemblies.AssemblyHashAlgorithm.MD5);
'lib'は、dllの完全なファイル名とパスです。「ハッシュ」は、dllのmd5合計です。
Windowsに「このdllを使用してください」と言っているのに、名前を見て「すでに持っています」と表示され、以前にロードされたものを使用しているように見えますが、ハッシュが一致しないため失敗します。元々、ロードされているdllにはアセンブリバージョンが設定されていなかったため、4つの異なるバージョンに設定しましたが、それでも同じ例外がスローされました。
これに対する修正は何ですか?
ジョーダン