Retrieve the Current App version from Package

2020-02-09 05:51发布

问题:

While I can get the assembly version using the following code

        var assembly = typeof(App).GetTypeInfo().Assembly;
        var assemblyVersion = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version;

I would like to retrieve the Version from Package.appxmanifest in this case 1.0.0.4

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
  <Identity Name="zzz" Publisher="CN=zzz" Version="1.0.0.4" />

I expected to have access to Windows.ApplicationModel, but this is not available to me

回答1:

Here's what you can do to retrieve the version in code:

using Windows.ApplicationModel;

public static string GetAppVersion()
{
  Package package = Package.Current;
  PackageId packageId = package.Id;
  PackageVersion version = packageId.Version;

  return string.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);
}

Reference: http://www.michielpost.nl/PostDetail_67.aspx