Namespaces
Variants
Actions

How to display the app version on a Windows Phone page

Jump to: navigation, search

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.

WP Metro Icon UI.png
Article Metadata

Code Example
Compatibility
Platform(s): Windows Phone 7 Silverlight and later

Article
Created: influencer (03 Nov 2012)
Last edited: hamishwillee (10 Apr 2013)

Necessary Steps

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.

AssemblyInfo.cs:

[assembly: AssemblyVersion("1.1.0.0")]

WMAppManifest.xml:

ValueConverterSampleWMAppManifest.png

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)
{
return appElement.Attribute(XName.Get("Version")).Value;
}
}
}
 
// If not, get the assembly version from the qualified name.
AssemblyName name = new AssemblyName(typeof(App).AssemblyQualifiedName);
return name.Version.ToString();
}

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();

ConverterScreen.png

Sample Code

Sample code to this article is contained in the Media: ValueConverterSample.zip sample code for the Collection of Value converters for Windows Phone apps.

This page was last modified on 10 April 2013, at 04:28.
213 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved