71 votes

Comment obtenir la version actuelle du produit en C# ?

Comment puis-je obtenir de manière programmatique la version actuelle du produit en C# ?

Mon code :

VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

J'obtiens VersionNumber=1.0.0.0, mais la version actuelle est 1.0.0.12.

113voto

Tony Hou Points 386

Il existe trois versions : assemblage, fichier et produit. Pour obtenir la version produit :

using System.Reflection;
using System.Diagnostics;
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fileVersionInfo.ProductVersion;

34voto

Nivid Dholakia Points 1405

J'ai obtenu la réponse à ma question. Il suffit de donner la référence à System.Deployment.Application et bien que cela ne fonctionne pas dans le développement du studio visuel, cela fonctionnera une fois l'application déployée.

//using System.Deployment.Application;
//using System.Reflection;
public string CurrentVersion
{
    get
    {
        return ApplicationDeployment.IsNetworkDeployed
               ? ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()
               : Assembly.GetExecutingAssembly().GetName().Version.ToString();
    }
}

20voto

Ketan H Kanada Points 211
System.Reflection.Assembly.GetEntryAssembly().GetName().Version

19voto

Richard Everett Points 18318

Une autre approche pour obtenir la version du produit (qui est spécifiée à l'aide de la balise AssemblyInformationalVersionAttribute ) est

private static string AssemblyProductVersion
{
    get
    {
        object[] attributes = Assembly.GetExecutingAssembly()
            .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false);
        return attributes.Length == 0 ?
            "" :
            ((AssemblyInformationalVersionAttribute)attributes[0]).InformationalVersion;
    }
}

6voto

GlennFerrieLive Points 4524

Essayez ça :

var thisApp = Assembly.GetExecutingAssembly();
AssemblyName name = new AssemblyName(thisApp.FullName);
VersionNumber = "v. " + name.Version;

Voir aussi ce document Microsoft sur le AssemblyName.Version propriété.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X