У меня есть старая dll, которая была скомпилирована с платформой .NET и развернута. Я не уверен, с какой версией .NET Framework он был скомпилирован. Мне интересно, как я могу определить, с какой версией .NET Framework эта DLL была скомпилирована? Я не могу доверять исходному коду, поскольку считаю, что он был обновлен до Visual Studio 2008 и изменен на .NET Framework версии 3.5.
.net
.net-framework-version
mpenrow
источник
источник
Ответы:
Загрузите его в Reflector и посмотрите, на что он ссылается?
например:
источник
В PowerShell вы можете использовать следующее для получения целевой среды выполнения:
Я адаптировал это к PowerShell из ответа Бена Грисволда .
Если вы хотите узнать версию целевой платформы, указанную в Visual Studio, используйте:
Вы должны получить что-то вроде
источник
dotPeek - отличный (бесплатный) инструмент для отображения этой информации.
Если у вас возникли некоторые проблемы с использованием Reflector, то это хорошая альтернатива.
источник
Вы можете использовать ILDASM ...
и проверьте «раздел метаданных» в выходных данных. Это было бы что-то вроде этого:
Тег 'version' сообщит вам версию .NET Framework. В приведенном выше примере это 4.0.30319
источник
// Metadata section: 0x424a5342, version: 1.1, extra: 0, version len: 12, versio n: v4.0.30319
У вас есть несколько вариантов: чтобы получить его программно, из управляемого кода, используйте Assembly.ImageRuntimeVersion:
Из командной строки, начиная с версии 2.0, ildasm.exe покажет его, если дважды щелкнуть «МАНИФЕСТ» и найти «Версия метаданных». Определение версии CLR изображения
источник
Используйте ILSpy http://ilspy.net/
с открытым исходным кодом, бесплатно, безусловно, вариант, так как теперь рефлектор оплачивается.
источник
Просто просто
источник
GetCustomAttributes
Не имеетTargetFrameworkAttribute
. Но ImageRuntimeVersion работает отлично, он возвращает правильный CLR, для которого был создан двоичный файл. Мне нужна целевая версия фреймворка, для которой он был построен.Еще один вариант через Visual Studio: добавить ссылку на DLL в любой проект, затем, щелкнув правой кнопкой мыши новую ссылку и выбрав Свойства, вы увидите то, что вы ищете в Runtime-версии:
источник
Декомпилируйте его с помощью ILDASM и посмотрите на версию mscorlib, на которую ссылается (должна быть почти в самом верху).
источник
Самый простой способ: просто открыть .dll в любом текстовом редакторе. Посмотрите на одну из последних строк:
источник
Я быстро написал это консольное приложение C #, чтобы сделать это:
https://github.com/stuartjsmith/binarydetailer
Просто передайте каталог в качестве параметра, и он сделает все возможное, чтобы рассказать вам о сетевом фреймворке для каждой библиотеки DLL и исполняемого файла.
источник
« Detect It Easy », также известная как DiE, - это программа для определения типов файлов. Работает с файлами .dll или другими (.exe) файлами. Абсолютно бесплатно для коммерческого и некоммерческого использования.
источник
Если у вас есть
DotPeek
изJetBrains
, вы можете увидеть его вAssembly Explorer
.источник
Расширяя ответы здесь, это может взорваться, если есть зависимая сборка. Если вам повезло, и вы знаете, где находится иждивенец (или даже счастливчик, он в GAC), тогда это может помочь ...
Ссылка: https://weblog.west-wind.com/posts/2006/Dec/22/Reflection-on-Problem-Assemblies
источник