13

アプリケーションを Windows ストアに移植しているときに、.NETCore フレームワークに次のものが含まれていないことに気付きました。

System.Reflection.Assembly.GetExecutingAssembly()

これを使用して、メニュー画面に表示するバージョン情報を取得しました。代替品はありますか、それとも検索のために情報を別の場所に保存する必要がありますか?

編集:

バージョン番号を抽出できることもわかりましたtypeof(MyType).AssemblyQualifiedNameが、それは悪いようです。

4

1 に答える 1

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

アセンブリ バージョンが必要な場合は、 Version 属性から取得できます。

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

たとえば、メイン アプリのアセンブリを使用します。

Assembly appAsm = typeof(App).GetTypeInfo().Assembly;
string assemblyVersion = GetAssemblyVersion(appAsm);
于 2012-11-03T22:31:39.480 に答える