首页 新闻 会员 周边

如何使用C#语言获取WPF项目(使用.Net 5框架)中“属性”→“打包”页面中 “包ID(I)”、 “作者(A)”、 “标记(T)” 这3项信息

0
悬赏园豆:20 [待解决问题]

大家好!

本人对新框架.Net 5了解不多,相比于.Net Framework 4.8中的wpf项目,“打包”页面中的的信息比“程序集信息”页面多得多。今天在创建一个WPF项目(使用.Net 5框架)时,需要得到项目“属性”→“打包”页面中的数项信息,但是我用之前.Net Framework 4.8中使用的反射的读取方法,无法全部获得,我很困惑。

我使用先前常用的反射方法,已经可以获得部分字段数据,主要C#代码如下:

复制代码
Assembly assembly = Assembly.GetExecutingAssembly();

var version = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion;//包版本(V)
var assemblyVersion = assembly.GetName().Version;//程序集版本(A)
var fileVersion = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version;//程序集文件版本(F)
var company = assembly.GetCustomAttribute<AssemblyCompanyAttribute>().Company;//公司(Y)
var copyright = assembly.GetCustomAttribute<AssemblyCopyrightAttribute>().Copyright;//版权(C)
var description = assembly.GetCustomAttribute<AssemblyDescriptionAttribute>().Description;//说明(D)
var product = assembly.GetCustomAttribute<AssemblyProductAttribute>().Product;//产品(P)

tb_Show.Text += $"{fileVersion}\n";//展示
复制代码

但是 “包ID(I)”、 “作者(A)”、 “标记(T)” 这3个字段的值,我不知道怎么获取。

恳请哪位大神给出读取“打包”页面中“包ID(I)”、 “作者(A)”、 “标记(T)” 这3个项目值的读取方法的C#代码。

问题补充:

经过他人的帮助指点,我了解到在Package Tab 中设置的内容其实可以在项目的.csproj 中的PropertyGroup中找到,它也就是pack-target 所包含的内容。

所以我用下列代码可以找到这三个值:

var name3 = XDocument.Load(@"..\..\..\WpfDotNet5AssemblyInfos.csproj").Descendants("PackageId").Select(i => i.Value).First();
var name4 = XDocument.Load(@"..\..\..\WpfDotNet5AssemblyInfos.csproj").Descendants("Authors").Select(i => i.Value).First();
var name5 = XDocument.Load(@"..\..\..\WpfDotNet5AssemblyInfos.csproj").Descendants("PackageTags").Select(i => i.Value).First();

但是:

.Net 5 WPF项目在编译、打包生成安装文件的时候,并不会打包这个csproj文件。

而我这三个值是要在程序内使用的,我如何在编译好的程序内找到这三个值呢?

syzcyyx的主页 syzcyyx | 初学一级 | 园豆:78
提问于:2021-03-17 08:42
< >
分享
所有回答(1)
0

不是一个东西,当然无法获取,.Net本身的那个是程序集内的VersionAttribute,代码自然好获取。

我只能告诉你这东西肯定没问题,自己去找一下。

以前拿来干多次不同版本分发修改这个数据实现的,这个东西有点灰。

花飘水流兮 | 园豆:13560 (专家六级) | 2021-03-17 11:15

我也知道它不是一个东西,不在一个类中,能在网上找到解决方法我就不提问了,可实在是找不到啊。╮(╯▽╰)╭

 

 

支持(0) 反对(0) syzcyyx | 园豆:78 (初学一级) | 2021-03-17 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册