如何获取部件信息
本文关键字:信息 获取 何获取 | 更新日期: 2023-09-27 18:21:43
在我的AssemblyInfo.cs
文件中,我有如下属性
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyCopyright("Copyright © 2015")]
现在我想在我的App.xaml.cs
中的OnLaunched(LaunchActivatedEventArgs e)
方法中获得这些信息。
当我在互联网和SO上搜索这个时,我总是找到这样的解决方案:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
但这不适用于Windows10。那么Windows 10有类似的功能吗?
编辑:
我正在开发一个Windows 10 UWP应用程序。
如果您需要获得有关应用程序版本的一般信息,可以使用Package.Current属性。
using Windows.ApplicationModel;
Package package = Package.Current;
PackageId packageId = package.Id;
PackageVersion version = packageId.Version;
String output = String.Format(
"Name: '"{0}'"'n" +
"Version: {1}.{2}.{3}.{4}'n" +
"Architecture: {5}'n" +
"ResourceId: '"{6}'"'n" +
"Publisher: '"{7}'"'n" +
"PublisherId: '"{8}'"'n" +
"FullName: '"{9}'"'n" +
"FamilyName: '"{10}'"'n" +
"IsFramework: {11}",
packageId.Name,
version.Major, version.Minor, version.Build, version.Revision,
packageId.Architecture,
packageId.ResourceId,
packageId.Publisher,
packageId.PublisherId,
packageId.FullName,
packageId.FamilyName,
package.IsFramework);
您可以使用以下代码查找属性:
var currentAsembly = typeof(App).GetTypeInfo().Assembly;
var customAttributes = currentAssembly.CustomAttributes;
CustomAttributes是可用属性的IEnumerable对象。在这些属性中,您可以找到有关程序集和文件版本的信息
编辑:
这是完整的代码:
var currentAssembly = typeof(App).GetTypeInfo().Assembly;
var customAttributes = currentAssembly.CustomAttributes;
var list = customAttributes.ToList();
var res = list[0];
var result = list.FirstOrDefault(x => x.AttributeType.Name == "AssemblyFileVersionAttribute");
var ver = result.ConstructorArguments[0].Value;