How can I get the executing assembly version information in a Windows Store App?

Justin Skiles picture Justin Skiles · Nov 3, 2012 · Viewed 7.9k times · Source

While porting an application to the Windows Store, I noticed the .NETCore Framework does not include:

System.Reflection.Assembly.GetExecutingAssembly()

I used this to get the version information for display on the menu screen. Is there a replacement or am I forced to store the information elsewhere for retrieval?

EDIT:

I've also found that I can extract a version number out of typeof(MyType).AssemblyQualifiedName but that seems bad.

Answer

Antonio Bakula picture Antonio Bakula · Nov 3, 2012

I am using this :

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

And if you want assembly version you can get it from Version attribute :

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

For example using main App's assembly :

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