2

GAC にインストールされているアセンブリの最新バージョン番号を表示するアプリケーションの診断ログを作成しようとしています。たとえば、GAC には同じアセンブリの 2 つのバージョンがあります。foo.dll バージョン 1.0.0.0 と foo.dll バージョン 2.0.0.0 です。次のような関数が必要です。

GetLatestGacVersion("foo.dll");  // returns "2.0.0.0"

これを行う最良の方法を知っている人はいますか?

ありがとう!

4

2 に答える 2

4

最も簡単なのは次のとおりです。

Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version

これにより、GAC から最新バージョンのアセンブリが自動的に提供されます。

Method は正当な理由により非推奨であることに注意してください。GAC に不特定のバージョンを要求すると、多くの問題が発生する可能性があります。

あなたが何をしたいのかを本当に知らなければ、それ以上のアドバイスをするのは難しいですが、一般的に、特定のバージョンを探している場合は、単に「何か」をロードするのではなく、プローブする必要があります.

于 2009-10-12T21:36:44.240 に答える
3

(fusion.dll) のマネージ ラッパーを使用すると、GAC でアセンブリを列挙し、名前でフィルター処理し、バージョンで並べ替えることができますFusion API

于 2009-10-12T21:33:44.720 に答える