Tengo un viejo dll que se compiló contra .NET Framework y se implementó. No estoy seguro de con qué versión de .NET Framework se compiló. Me pregunto cómo puedo determinar con qué versión del .NET Framework se compiló este dll. No puedo confiar en el código fuente porque creo que se ha actualizado a Visual Studio 2008 y se ha cambiado a .NET Framework versión 3.5.
.net
.net-framework-version
mpenrow
fuente
fuente
Respuestas:
¿Cargarlo en Reflector y ver a qué hace referencia?
por ejemplo:
fuente
En PowerShell puede usar lo siguiente para obtener el tiempo de ejecución de destino:
Adapte esto a PowerShell de la respuesta de Ben Griswold .
Si desea conocer la versión del marco de destino especificada en Visual Studio, use:
Deberías obtener algo como
fuente
dotPeek es una gran herramienta (gratuita) para mostrar esta información.
Si tiene algunos problemas para obtener Reflector, esta es una buena alternativa.
fuente
Puedes usar ILDASM ...
y verifique la sección 'Metadata' en la salida. Sería algo como esto:
La etiqueta 'versión' le indicará la versión de .NET Framework. En el ejemplo anterior es 4.0.30319
fuente
// Metadata section: 0x424a5342, version: 1.1, extra: 0, version len: 12, versio n: v4.0.30319
Tiene algunas opciones: para obtenerlo mediante programación, desde el código administrado, use Assembly.ImageRuntimeVersion:
Desde la línea de comandos, comenzando en v2.0, ildasm.exe lo mostrará si hace doble clic en "MANIFEST" y busca "Versión de metadatos". Determinación de la versión CLR de una imagen
fuente
Utilice ILSpy http://ilspy.net/
código abierto, gratis, definitivamente una opción ya que ahora se paga reflector.
fuente
Así de simple
fuente
GetCustomAttributes
no tiene unTargetFrameworkAttribute
. Pero ImageRuntimeVersion funciona bien, recupera el CLR correcto para el que se creó el binario. Necesito la versión de framework de destino para la cual fue construida.Otra opción más a través de Visual Studio, agrega una referencia a la DLL a cualquier proyecto, luego haz clic derecho en la nueva referencia y haz clic en Propiedades, puedes ver lo que estás buscando en la versión Runtime:
fuente
Descompílelo con ILDASM y mire la versión de mscorlib a la que se hace referencia (debería estar más o menos en la parte superior).
fuente
La forma más simple: simplemente abra el archivo .dll en cualquier editor de texto. Mira una de las últimas líneas:
fuente
Rápidamente escribí esta aplicación de consola C # para hacer esto:
https://github.com/stuartjsmith/binarydetailer
Simplemente pase un directorio como parámetro y hará todo lo posible para decirle el marco de red para cada dll y exe allí
fuente
" Detect It Easy ", también conocido como DiE, es un programa para determinar tipos de archivos. Funciona con archivos .dll u otros archivos (.exe). Absoluto libre para uso comercial y no comercial.
fuente
Si tienes
DotPeek
deJetBrains
, puedes verlo enAssembly Explorer
.fuente
Ampliando las respuestas aquí, esto puede explotar si hay un ensamblaje dependiente. Si tiene suerte y sabe dónde está el dependiente (o incluso más afortunado, está en el GAC), entonces esto puede ayudar ...
Referencia: https://weblog.west-wind.com/posts/2006/Dec/22/Reflection-on-Problem-Assemblies
fuente