在将应用程序移植到Windows商店时,我注意到.NET Core框架不包括:
System.Reflection.Assembly.GetExecutingAssembly()
我使用它来获取版本信息以在菜单屏幕上显示。是否有替代方法,还是必须在其他地方存储信息以进行检索?
编辑:
我还发现可以从typeof(MyType).AssemblyQualifiedName
中提取版本号,但那似乎不好。
在将应用程序移植到Windows商店时,我注意到.NET Core框架不包括:
System.Reflection.Assembly.GetExecutingAssembly()
我使用它来获取版本信息以在菜单屏幕上显示。是否有替代方法,还是必须在其他地方存储信息以进行检索?
编辑:
我还发现可以从typeof(MyType).AssemblyQualifiedName
中提取版本号,但那似乎不好。
我正在使用这个:
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);