Я пытаюсь создать журнал диагностики для моего приложения, в котором будет отображаться последний номер версии сборки, установленной в GAC. Например, в GAC есть две версии одной и той же сборки: 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.
Обратите внимание, что метод устарел по уважительным причинам. Просить о неспецифической версии GAC, возможно, вызовет множество проблем.
Не зная, чего вы хотите сделать, трудно дать дальнейшие советы, но в целом, если вы ищете конкретную версию, вам следует скорее исследовать ее, а не просто загружать "что-то".
Используя управляемый обертку вокруг Fusion API
(fusion.dll), вы можете перечислить сборки в GAC, отфильтровать их по имени и порядок по версии.