2010年11月30日 星期二

How to get App Version in WMAppManifest.xml

開發WP7軟體時,版號通常會統一管理在 WMAppManifest.xml 中,
而某些情況時常要讀出版號做某些判斷或秀在 "about" 之類的畫面上,
就目前知道的有三種方法可以取得 Version 此屬性值。

第一種方法是取得 FullName 資訊,
至於為什麼這些東西叫 FullName 我也不了解,方法如下


using System.Reflection;

string strAsmFullName = Assembly.GetExecutingAssembly().FullName;

可得此串資訊
//strAsmFullName = "AsciiSln, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"



此時再用 split 逗號的方式去取得第2個索引鍵值即可得版本號。

再來第二種方法就是讀取 WMAppManifest.xml 檔案,
因為這是一個標準的 Xml 檔,解讀上並不麻煩,且可以得到比較多的資訊,
簡單的Parse如下


XDocument appManifestXML = XDocument.Load(“WMAppManifest.xml”);
if (appManifestXML != null)
{
  // 向下找到 App tag 中的 Version Attribute 即可
}


第三種方法就是使用 System.Reflection.AssemblyName 類別,
這是最方便的一招,但取出的資訊就不如 Parse WMAppManifest.xml來得多,
簡單的範例如下


using System.Reflection;

AssemblyName assembly = new AssemblyName(Assembly.GetExecutingAssembly().FullName);
string strFullVersion = assembly.Version.ToString();
//也可以方便的取得 Major 與 Minor
string strMajor = assembly.Version.Major.ToString();
string strMinor = assembly.Version.Minor.ToString();
string strName = assembly.Name;

沒有留言:

張貼留言