Как определить номер последней версии сборки GAC - PullRequest
2 голосов
/ 13 октября 2009

Я пытаюсь создать журнал диагностики для моего приложения, в котором будет отображаться номер последней версии сборки, установленной в GAC. Например, в GAC есть две версии одной и той же сборки: foo.dll версии 1.0.0.0 и foo.dll версии 2.0.0.0. Мне нужна функция, подобная следующей:

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

Кто-нибудь знает лучший способ сделать это?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 13 октября 2009

Самый простой:

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

, которая автоматически выдаст вам сборку последней версии из GAC.

Обратите внимание, что метод не рекомендуется по уважительным причинам. Запрашиваемая GAC неопределенная версия может вызвать массу проблем.

Без реального знания того, что вы хотите сделать, сложно дать дальнейший совет, но в целом, если вы ищете конкретную версию, вы должны скорее исследовать ее, чем просто загружать что-то.

3 голосов
/ 13 октября 2009

Используя управляемую оболочку вокруг Fusion API (fusion.dll), вы можете перечислять сборки в GAC, фильтровать их по имени и по порядку по версии.

...