2009-02-09 17 views
5

Devo visualizzare il numero di versione di .NET Compact Framework sullo schermo. Sto usando .NET CF 2.0 con Windows   CE 4.0.Numero versione nell'applicazione .NET Compact Framework

Finora, ho ignorato completamente il numero di versione. Devo aggiungere qualcosa all'assemblaggio? come posso recuperarlo a livello di programmazione?


Purtroppo questo non vale per Compact Framework. La proprietà Application.ProductVersion non esiste in Compact Framework. L'ultima parte della tua risposta si applica però.

Un'altra domanda: queste proprietà (maggiore, minore, compilazione, revisione) vengono incrementate automaticamente o le imposto quando lo desidero? Per come la vedo io, la revisione dovrebbe essere automaticamente incrementata con ogni nuova build.

risposta

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.Revision

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

(Edit)

Application.Prod uctVersion Property

Ottiene la versione del prodotto associata a questa applicazione.

Non disponibile in Compact Framework Ma System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Versione Is.

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

+0

Correzione Aggiunto, Application.ProductVersion non disponibile in CF – VBNight

5
+0

Oppure si può usare 'ToString() 'senza un parametro per ottenere la stringa della versione completa. –

1

So che questa è una vecchia questione, ma qui è una soluzione che ho trovato con la riflessione e Linq (ripubblicato da my answer here).

Innanzitutto, l'ho aggiunto a AssemblyInfo.cs (sostituire la stringa con quello che vuoi usare):

[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")] 

Quindi, è possibile utilizzare questo metodo per tirare fuori l'attributo (ho messo dentro una classe statica nel file AssemblyInfo.cs). Il metodo get è una matrice di tutti gli attributi Assembly, quindi seleziona il primo risultato corrispondente al nome dell'attributo (e lo inserisce nel tipo corretto). È quindi possibile accedere alla stringa InformationalVersion.

//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; 
    } 
} 

Per ottenere il normale attributo "AssemblyVersion" Ho usato:

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

Per visualizzare la versione del prodotto con .NET Compact Framework (testato con con 2.0 e 3.5), è possibile utilizzare AssemblyHelper. getProductVersion() definito di seguito.

Ad esempio, se la versione dell'assieme è definita come di seguito nel file AssemblyInfo.cs, il risultato del metodo è "1.2.3".

estratto del file AssemblyInfo.cs:

[assembly: AssemblyVersion("1.2.3")] 

estratto del file di 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); 
    } 
} 
Problemi correlati