Определите версию Платформы.NET для dll

У меня есть старый dll, который был скомпилирован против платформы.NET и развернут. Я не уверен, против какой версии платформы.NET это было скомпилировано. Я задаюсь вопросом, как я могу определить, против какой версии платформы.NET этот dll был скомпилирован? Я не могу доверять исходному коду, потому что я полагаю, что он был обновлен до Visual Studio 2008 и изменен на версию 3.5 платформы.NET.

124
задан mpenrow 11 August 2010 в 17:11
поделиться

4 ответа

Загрузите его в Reflector и посмотрите, на что он ссылается?

например:

enter image description here

51
ответ дан 24 November 2019 в 01:03
поделиться

Вы можете использовать ILDASM ...

ildasm.exe C:\foo.dll /metadata[=MDHEADER] /text /noil

и проверить «Раздел метаданных» в выходных данных. Это будет примерно так:

Раздел метаданных: 0x424a5342, версия: 1.1, extra: 0, версия len: 12, версия: v4.0.30319

Тег «версия» сообщит вам версию .NET Framework. В приведенном выше примере это 4.0.30319

.
45
ответ дан 24 November 2019 в 01:03
поделиться

У вас есть несколько вариантов: Чтобы получить его программно, из управляемого кода, используйте Assembly.ImageRuntimeVersion:

Dim a As Assembly = Reflection.Assembly.ReflectionOnlyLoadFrom("C:\path\assembly.dll")
Dim s As String = a.ImageRuntimeVersion

Из командной строки, начиная с версии 2.0, ildasm.exe покажет его, если вы дважды щелкните на "MANIFEST" и поищите "Metadata version". Определение версии CLR изображения

15
ответ дан 24 November 2019 в 01:03
поделиться

Декомпилируйте его с помощью ILDASM и посмотрите версию mscorlib, которая упоминается (должно быть почти в самом верху).

8
ответ дан 24 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: