Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 809
Justin Skiles Avatar asked Nov 03 '12 22:11

Justin Skiles


1 Answers

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);
like image 91
Antonio Bakula Avatar answered Oct 01 '22 18:10

Antonio Bakula