3

アセンブリのバージョンをチェックし、それが古い場合はそれをオーバーライドするメソッドがあります。バージョンを検出するには、次のコードを使用しています。

version = Type.GetType(typeName).Assembly.GetName().Version;

ただし、このバージョンを上書きしようとしたときにこのバージョンが古くなっていると判断した場合、次のエラーが表示されます

別のプロセスで使用されているため、プロセスはファイルにアクセスできません。

アセンブリを反映する行為により、アセンブリがプログラムに読み込まれるため、オーバーライドできないようです。

どうすればいいですか

  1. アセンブリを読み込まずにバージョンを確認する
  2. オーバーライドする前にアセンブリをアンロードしてください
4

3 に答える 3

2

次の方法で、アセンブリのコピーを読み込みます。

var assembly = Assembly.Load(File.ReadAllBytes("YourAssembly.dll"));

ディスク上のアセンブリをオーバーライドできるようになりました。

于 2013-08-04T15:00:05.700 に答える
2

アセンブリ バージョンをリダイレクトするだけです。

于 2013-08-04T14:56:19.813 に答える