How to display the app version on a Windows Phone page
It's not as simple as it may seem to display the current app version in a Windows Phone 7 app. Here you'll see how this can be solved.
In a Windows Phone app there are at least two places where a version number is contained:
- The WMAppManifest.xml file and
- the AssemblyInfo of the main app assembly.
My solution to the problem involves reading out the contents of the WMAppManifest.xml file that's contained in every XAP package. If for whatever reason the manifest can't be open, the function will fall back to parsing the version from the AssemblyQualifiedName.
So what you'll have to do first is keeping the version number in those two places accurate.
Next add a GetVersion() method to the App.xaml.cs code-behind file that reads out the version number:
public static string GetVersion()
Uri manifest = new Uri("WMAppManifest.xml", UriKind.Relative);
var si = Application.GetResourceStream(manifest);
// If we can open the WMAppManifest.xml file, parse it using XDocument and find the 'Version' attribute of the 'App' element.
if (si != null)
XDocument document = XDocument.Load(si.Stream);
XElement appNode = document.Descendants(XName.Get("App")).FirstOrDefault();
if (appNode != null)
XElement appElement = document.Element(XName.Get("App"));
if (appElement != null)
// If not, get the assembly version from the qualified name.
AssemblyName name = new AssemblyName(typeof(App).AssemblyQualifiedName);
Then you can show the version number on a page by setting the text of a TextBlock, e.g. in the constructor of the page:
ApplicationTitle.Text += " Version " + App.GetVersion();
Sample code to this article is contained in the Media: ValueConverterSample.zip sample code for the Collection of Value converters for Windows Phone apps.