web-dev-qa-db-ja.com

パッケージから現在のアプリのバージョンを取得する

次のコードを使用してアセンブリバージョンを取得できますが

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

この場合Package.appxmanifestからバージョンを取得したい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" />

Windows.ApplicationModelへのアクセス権があると思っていましたが、これは利用できません

35
Chris Ballance

コードでバージョンを取得するためにできることは次のとおりです。

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

参照: http://www.michielpost.nl/PostDetail_67.aspx

94
Kevin Avignon