2009-02-09 6 views
5

Je dois afficher le numéro de version .NET Compact Framework à l'écran. J'utilise .NET CF 2.0 avec Windows   CE 4.0.Numéro de version dans l'application .NET Compact Framework

Jusqu'ici, j'ai complètement ignoré le numéro de version. Dois-je ajouter quelque chose à l'assemblage? comment puis-je le récupérer par programmation?


Malheureusement, cela ne vaut pas pour Compact Framework. La propriété Application.ProductVersion n'existe pas dans Compact Framework. La dernière partie de votre réponse s'applique cependant.

Une question de plus: ces propriétés (majeures, mineures, build, révision) sont-elles incrémentées automatiquement ou est-ce que je les règle quand je le souhaite? La façon dont je le vois, la révision devrait être automatiquement incrémentée avec chaque nouvelle construction.

Répondre

12

System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Version.Major System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Version.Minor System.Reflection.Assembly.GetExecutingAssembly(). . GetName() Version.Build System.Reflection.Assembly.GetExecutingAssembly() getName() version.révision

Source:.. http://msdn.microsoft.com/en-us/library/system.version.aspx

(Edit)

Application.Prod Propriété uctVersion

Obtient la version du produit associée à cette application.

Non disponible dans Compact Framework mais System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Version Is..

Source: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.productversion.aspx

+0

Correction Ajouté, Application.ProductVersion Non disponible en CF – VBNight

5
+0

Ou vous pouvez utiliser 'ToString() 'sans paramètre pour obtenir la chaîne de version complète. –

1

Je sais que c'est une vieille question, mais voici une solution que j'ai trouvé en utilisant la réflexion et LINQ (republié de my answer here).

D'abord, j'ai ajouté ceci à AssemblyInfo.cs (remplacer la chaîne avec tout ce que vous voulez utiliser):

[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")] 

Ensuite, vous pouvez utiliser cette méthode pour retirer l'attribut (je l'ai placé dans une classe statique dans le fichier AssemblyInfo.cs). La méthode get est un tableau de tous les attributs Assembly, puis sélectionne le premier résultat correspondant au nom de l'attribut (et le place dans le bon type). La chaîne InformationalVersion peut ensuite être accédée.

//using System.Reflection; 
//using System.Linq; 
public static string AssemblyInformationalVersion 
{ 
    get 
    { 
     AssemblyInformationalVersionAttribute informationalVersion = (AssemblyInformationalVersionAttribute) 
      (AssemblyInformationalVersionAttribute.GetCustomAttributes(Assembly.GetExecutingAssembly())).Where( 
       at => at.GetType().Name == "AssemblyInformationalVersionAttribute").First(); 

     return informationalVersion.InformationalVersion; 
    } 
} 

Pour obtenir l'attribut normal "AssemblyVersion" je:

//using System.Reflection; 
public static string AssemblyVersion 
{ 
    get 
    { 
     return Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
    } 
} 
0

Pour afficher la version du produit avec Compact Framework .NET (testé avec 2,0 et 3,5), vous pouvez utiliser AssemblyHelper. getProductVersion() défini ci-dessous. Par exemple, si la version d'assembly est définie comme ci-dessous dans le fichier AssemblyInfo.cs, le résultat de la méthode est "1.2.3".

Extrait du fichier AssemblyInfo.cs:

[assembly: AssemblyVersion("1.2.3")] 

Extrait du fichier AssemblyHelper.cs:

using System; 
using System.Reflection; 

public static class AssemblyHelper 
{ 
    public static string getProductVersion() 
    { 
    Version assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version; 
    return String.Format("{0}.{1}.{2}", assemblyVersion.Major, assemblyVersion.Minor, assemblyVersion.Build); 
    } 
} 
Questions connexes