J'ai une ancienne DLL qui a été compilée avec le framework .NET et déployée. Je ne sais pas avec quelle version du framework .NET il a été compilé. Je me demande comment je peux déterminer avec quelle version du framework .NET cette dll a été compilée? Je ne peux pas faire confiance au code source car je pense qu'il a été mis à niveau vers Visual Studio 2008 et changé vers .NET Framework version 3.5.
.net
.net-framework-version
mpenrow
la source
la source
Réponses:
Chargez-le dans Reflector et voyez ce qu'il fait référence?
par exemple:
la source
Dans PowerShell, vous pouvez utiliser ce qui suit pour obtenir le runtime cible:
J'ai adapté cela à PowerShell à partir de la réponse de Ben Griswold .
Si vous souhaitez connaître la version du framework cible spécifiée dans Visual Studio, utilisez:
Vous devriez obtenir quelque chose comme
la source
dotPeek est un excellent outil (gratuit) pour afficher ces informations.
Si vous rencontrez quelques problèmes pour vous procurer Reflector, c'est une bonne alternative.
la source
Vous pouvez utiliser ILDASM ...
et vérifiez la «section Métadonnées» dans la sortie. Ce serait quelque chose comme ça:
La balise 'version' vous indiquera la version du .NET Framework. Dans l'exemple ci-dessus, il s'agit de 4.0.30319
la source
// Metadata section: 0x424a5342, version: 1.1, extra: 0, version len: 12, versio n: v4.0.30319
Vous avez quelques options: Pour l'obtenir par programme, à partir du code managé, utilisez Assembly.ImageRuntimeVersion:
Depuis la ligne de commande, à partir de la v2.0, ildasm.exe l'affichera si vous double-cliquez sur "MANIFEST" et recherchez "Metadata version". Détermination de la version CLR d'une image
la source
Utilisez ILSpy http://ilspy.net/
open source, gratuit, définitivement une option puisque maintenant réflecteur est payé.
la source
Tout simplement
la source
GetCustomAttributes
n'a pas de fichierTargetFrameworkAttribute
. Mais ImageRuntimeVersion fonctionne bien cependant, il récupère le bon CLR pour lequel le binaire a été construit. J'ai besoin de la version du framework cible pour laquelle il a été construit.Encore une autre option via Visual Studio, ajoutez une référence à la DLL à n'importe quel projet, puis cliquez avec le bouton droit sur la nouvelle référence et cliquez sur Propriétés, vous pouvez voir ce que vous recherchez dans la version Runtime:
la source
Décompilez-le avec ILDASM, et regardez la version de mscorlib qui est référencée (devrait être à peu près tout en haut).
la source
Le moyen le plus simple: ouvrez simplement le fichier .dll dans n'importe quel éditeur de texte. Regardez l'une des dernières lignes:
la source
J'ai rapidement écrit cette application console C # pour ce faire:
https://github.com/stuartjsmith/binarydetailer
Passez simplement un répertoire en paramètre et il fera de son mieux pour vous indiquer le framework net pour chaque dll et exe qu'il contient
la source
" Detect It Easy " également connu sous le nom de DiE est un programme pour déterminer les types de fichiers. Fonctionne avec les fichiers .dll ou d'autres fichiers (.exe). Absolument gratuit pour un usage commercial et non commercial.
la source
Si vous avez
DotPeek
deJetBrains
, vous pouvez le voir dansAssembly Explorer
.la source
En développant les réponses ici, cela peut exploser s'il existe un assemblage dépendant. Si vous avez de la chance et que vous savez où se trouve la personne à charge (ou même plus chanceuse, c'est dans le GAC), cela peut aider ...
Référence: https://weblog.west-wind.com/posts/2006/Dec/22/Reflection-on-Problem-Assemblies
la source