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