web-dev-qa-db-fra.com

Obtenir la version de mon application C #?

Je travaille sur une application de bureau. J'ai créer une configuration. 

Ex. Mon application. La version est 1.0.0.

Je souhaite obtenir la version actuelle de mon application de bureau, à savoir 1.0.0. J'ai essayé en utilisant Application.ProductVersion mais il fournit la version de mes contrôles. (J'utilise DevExpress Control15.2.7, il fournit donc la version actuelle sous la forme 15.2.7).

Comment puis-je obtenir la version actuelle de l'application installée? Je souhaite le comparer à la version installée pour fournir une fonctionnalité "Nouvelle version disponible" à mon produit.

15
Nanji Mange

Les informations que vous recherchez se trouvent dans AssemblyInfo.cs.

Pour accéder aux informations écrites ici au moment de l'exécution, vous pouvez utiliser le System.Reflection.Assembly.

Utilisez System.Reflection.Assembly.GetExecutingAssembly() pour obtenir l’Assembly (que cette ligne de code est entre) ou utilisez System.Reflection.Assembly.GetEntryAssembly() pour obtenir l’Assembly avec lequel votre projet a démarré (le plus susceptible est votre application).

Dans les solutions multi-projets, il faut en tenir compte!

string version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
// returns 1.0.0.0

Correspondant AssemblyInfo.cs:

 AssemblyInfo.cs

Propriétés EXE correspondantes:

 EXE properties

Ceci peut être important lorsque vous utilisez InstallShield (voir commentaires)!

22
Felix D.
System.Reflection.Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var fieVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly .Location);
var version = fieVersionInfo.FileVersion;
1
Nitin