Logo UGIdotNET

Recuperare la versione dell'applicazione

Spesso mi capita, specie nelle applicazioni Web, di voler sapere con precisione quale versione dell'applicazione sto utilizzando.
Questo sia per accertarmi che sul server ci sia proprio l'ultima, che per verificare quale sia la versione che presenta determinati problemi.

Per ottenere ciò si deve fare riferimento al Reflection perchè recuperi questa informazione dall'Assembly in esecuzione.
Quasi sempre dimentico quali sono esattamente le istruzioni da usare per ottenere questa informazione, e quasi mai le trovo "al volo" sulla rete.
Pertanto il mio piccolo contributo.

Per prima cosa dobbiamo usare il namespace System.Reflection, poi sarà sufficiente far riferimento ad Assembly per recuperare quello in esecuzione (GetExecutingAssembly()) e da questo ottenere le informazioni di versione (GetName().Version).
Version è una classe derivata da System che contiene chiaramente i dati di versione, nella forma ordinata Version.Major, Version.Minor, Version.Build e Version.Revision. Quello che vogliamo ottenere è una stringa che si presenti come di seguito: "vMAYOR.minor.build", cioè nella forma "v1.0.0001".
In pratica:

...
using System.Reflection;
...
public class infoPage : System.Web.UI.Page
{
   private void Page_Load(object sender, System.EventArgs e) {
      string[] av = _AppVersion();
      string verMajMinOnly=string.Concat("v",av[0],".",av[1]);
      string verComplete=string.Concat(verMajMinOnly,".",av[2]);
   }

   private string[] _AppVersion(){
      Version appVer = Assembly.GetExecutingAssembly().GetName().Version;
      return new string[] {appVer.Major.ToString(),
         appVer.Minor.ToString(),
         appVer.Build.ToString(),
         appVer.Revision.ToString()};
   }
}

Avremo così due possibilità, visualizzare la versione completa (verComplete = "v1.0.0001") o la stringa con solo la mayor e la minor version (verMajMinOnly = "v1.0").

Autore: Aldo Prinzi
Data: 17 maggio 2004
Ultimo aggiornamento: 23 luglio 2004
Categorie: 

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185