GAC にインストールされているアセンブリの最新バージョン番号を表示するアプリケーションの診断ログを作成しようとしています。たとえば、GAC には同じアセンブリの 2 つのバージョンがあります。foo.dll バージョン 1.0.0.0 と foo.dll バージョン 2.0.0.0 です。次のような関数が必要です。
GetLatestGacVersion("foo.dll"); // returns "2.0.0.0"
これを行う最良の方法を知っている人はいますか?
ありがとう!
GAC にインストールされているアセンブリの最新バージョン番号を表示するアプリケーションの診断ログを作成しようとしています。たとえば、GAC には同じアセンブリの 2 つのバージョンがあります。foo.dll バージョン 1.0.0.0 と foo.dll バージョン 2.0.0.0 です。次のような関数が必要です。
GetLatestGacVersion("foo.dll"); // returns "2.0.0.0"
これを行う最良の方法を知っている人はいますか?
ありがとう!
最も簡単なのは次のとおりです。
Assembly a = Assembly.LoadWithPartialName ("foo.dll");
return a.GetName ().Version
これにより、GAC から最新バージョンのアセンブリが自動的に提供されます。
Method は正当な理由により非推奨であることに注意してください。GAC に不特定のバージョンを要求すると、多くの問題が発生する可能性があります。
あなたが何をしたいのかを本当に知らなければ、それ以上のアドバイスをするのは難しいですが、一般的に、特定のバージョンを探している場合は、単に「何か」をロードするのではなく、プローブする必要があります.
(fusion.dll) のマネージ ラッパーを使用すると、GAC でアセンブリを列挙し、名前でフィルター処理し、バージョンで並べ替えることができます。Fusion API