2014-08-15 2 views
0

У меня есть ссылочное A.DLL v2Сравнение зависимостей сборки

я загружаю random.dll с зависимостью от A.DLL v1 с Assembly.LoadFrom (файла);

Я хочу знать, есть ли способ получить список сборок/версий, на которых требуется исходный файл random.dll. Чтобы я мог проверить, будет ли он работать с последним V2 и решает загрузить из него классы.

+0

Ручной способ проверки осуществляется с помощью приложения JetBrain dotPeek. –

+0

Я надеялся сделать простое обновление currentversion! = Checkendependence в коде. – maxfridbe

ответ

1

LoadFrom попытается загрузить все зависимости. Возможно, вы захотите использовать Assembly.ReflectionOnlyLoadFrom, который не пытается загрузить все, на что ссылается сборка, затем вы можете использовать GetReferencedAssemblies, чтобы получить список ссылок, на которые делается ссылка. Чтобы получить версию сборки, вам понадобится FileVersionInfo.GetVersionInfo

+0

Чтобы достичь этого, мне пришлось бы загружать его в отдельный домен приложения. Я надеялся избежать этого. – maxfridbe

+0

Вам не нужен отдельный домен приложения, Assembly.ReflectionOnlyLoadFrom не загружает сборку и связанные с ней сборки в AppDomain. Он просто загружает манифест сборки, чтобы вы могли получить список ссылок dll на него. LoadFrom загружает сборку и все связанные с ней сборки в домен приложения и сбой, если это невозможно из-за несовместимых версий – Mick