从软件包中获取当前应用程序版本

54

虽然我可以使用以下代码获取程序集版本号

        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,但是现在对我不可用。


1个回答

138

以下是您可以执行的操作,以检索代码中的版本:

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


1
太完美了!干杯,@Kevin! - Chris Ballance
2
@ChrisBallance 不用谢!总是很高兴能帮助其他开发者! - Kevin Avignon
你是否也知道如何检索软件包描述?在运行时,Package.Current.Description为空... - Sven Jung
应用程序在xBox上安装时版本不同,您知道为什么吗? - Emil
1
对我来说,在Xbox上没有区别。 - vikingfabian
1
如果您在不同平台上看到了不同的版本,请仔细检查软件包部署是否针对这些平台。您将在“软件包”步骤中看到一排复选框。 - Lance McCarthy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接