web-dev-qa-db-fra.com

Comment vérifier la version d'un Assembly (dll)?

J'ai l'application c # et quand j'effectue un changement, le message d'erreur suivant s'affiche:

Une exception non gérée du type 'System.TypeLoadException' s'est produite dans WindowsFormsApplication1.exe

Informations complémentaires: Impossible de charger le type
'TradeIdeas.TIProData.OddsMakerColumnConfiguration' dans Assembly 'TIProData, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null'.

Ce message indique que le numéro de version de dll (TIProData) est 1.0.0.0. Je pense qu'il existe une version ultérieure disponible. Comment puis-je connaître le numéro de version d'une dll sur ma machine?

14
user3229570

Vous pouvez utiliser Reflector , ILDASM ou ILSpy pour obtenir la version Assembly.

Vous pouvez généralement trouver ILDASM dans C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe (où v8.1A est la version du kit de développement logiciel Windows installée).

ILDASM:

ildasm

Réflecteur:

reflector

20
Patrick Hofman

Vous pouvez utiliser AssemblyName.GetAssemblyName(string path) à partir d'une petite application util. 

Plus de détails ici sur MSDN .

1
James Lucas

Si vous connaissez la classe appartenant à Assembly, vous pouvez utiliser GetTypeInfo.

var runtimeVersion = typeof(MyClass)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyFileVersionAttribute>();

String ver = RuntimeVersion.Version;

L'exemple est pour .Net Core From https://developers.de/blogs/damir_dobric/archive/2017/06/27/how-to-deal-with-Assembly-version-in-net -core.aspx

0
Michael Freidgeim

Il y a deux façons de le faire:

  • Si vous référencez la dll dans Visual Studio, cliquez dessus avec le bouton droit de la souris (dans le dossier NomProjet/Références) et sélectionnez "Propriétés". Vous y trouverez "Version" et "Version d'exécution".

  • Dans l'Explorateur de fichiers, cliquez avec le bouton droit de la souris sur le fichier dll et sélectionnez Propriétés, une "version de fichier" et une "version du produit".

  • Vous pouvez également l'explorer dans le code:

    Assembly assembly = Assembly.LoadFrom("TestAssembly.dll");
    Version ver = Assembly.GetName().Version;
    
0
PiotrWolkowski