2012-11-03 7 views
12

Mentre il porting di un'applicazione per Windows Store, ho notato che il quadro .NETCore non comprende:Come posso ottenere le informazioni sulla versione in esecuzione in un'app di Windows Store?

System.Reflection.Assembly.GetExecutingAssembly()

Ho usato questo per ottenere le informazioni sulla versione per la visualizzazione nella schermata dei menu. C'è una sostituzione o sono costretto a memorizzare le informazioni altrove per il recupero?

EDIT:

ho anche scoperto che posso estrarre un numero di versione di typeof(MyType).AssemblyQualifiedName ma che sembra male.

+0

possibile duplicato di [System.Reflection.Assembly.GetExecutingAssembly() in WinRT] (http://stackoverflow.com/questions/7451703/system-ref lection-assembly-getexecutingassembly-in-winrt) –

risposta

24

Sto usando questo:

public string GetApplicationVersion() 
{ 
    var ver = Windows.ApplicationModel.Package.Current.Id.Version; 
    return ver.Major.ToString() + "." + ver.Minor.ToString() + "." + ver.Build.ToString() + "." + ver.Revision.ToString(); 
} 

E se si desidera la versione di montaggio si può ottenere da attributo Versione:

public string GetAssemblyVersion(Assembly asm) 
{ 
    var attr = CustomAttributeExtensions.GetCustomAttribute<AssemblyFileVersionAttribute>(asm); 
    if (attr != null) 
    return attr.Version; 
    else 
    return ""; 
} 

Ad esempio, utilizzando il montaggio principale di App:

Assembly appAsm = typeof(App).GetTypeInfo().Assembly; 
string assemblyVersion = GetAssemblyVersion(appAsm); 
+0

Questo è basato sulla versione del pacchetto, che è unidirezionale, ma la mia configurazione corrente si basa sui valori predefiniti di build/revision nel file assemblyinfo. Se non riesco a trovare un altro modo, accetterò questa risposta. –

+0

ha aggiornato la mia risposta –

Problemi correlati