如何在Windows应用商店应用中获取执行的汇编版本信息?

时间:2012-11-03 22:00:28

标签: c# reflection windows-8 windows-store-apps

在将应用程序移植到Windows应用商店时,我注意到.NETCore Framework不包括:

System.Reflection.Assembly.GetExecutingAssembly()

我用它来获取显示在菜单屏幕上的版本信息。是否有替代品或我是否被迫将信息存储在其他地方以供检索?

编辑:

我还发现我可以从typeof(MyType).AssemblyQualifiedName中提取一个版本号,但这看起来很糟糕。

1 个答案:

答案 0 :(得分:25)

我正在使用它:

public string GetApplicationVersion()
{
  var ver = Windows.ApplicationModel.Package.Current.Id.Version;
  return ver.Major.ToString() + "." + ver.Minor.ToString() + "." + ver.Build.ToString() + "." + ver.Revision.ToString();
}

如果你想要汇编版本,你可以从版本属性中获取它:

public string GetAssemblyVersion(Assembly asm)
{
  var attr = CustomAttributeExtensions.GetCustomAttribute<AssemblyFileVersionAttribute>(asm);
  if (attr != null)
    return attr.Version;
  else
    return "";
}

例如使用主App的程序集:

Assembly appAsm = typeof(App).GetTypeInfo().Assembly;
string assemblyVersion = GetAssemblyVersion(appAsm);