阅读程序集的作者

Read the Authors of an Assembly

读取程序集的一些元数据非常容易,只需加载 Assembly 然后获取自定义属性,例如:

Assembly assembly = Assembly.GetExecutingAssembly();
AssemblyTitleAttribute? attribute = assembly.GetCustomAttribute<AssemblyTitleAttribute>();
string? title = attribute?.Title;

您可以将 AssemblyTitleAttribute 替换为 CopyrightTrademarkDescriptionVersion 等其他几个,但我找不到东西对于 Authors(此元数据可以设置在与另一个相同的位置,在项目解决方案的包选项卡上)。

知道为什么缺少此属性以及如何读取它的值吗? (我使用的是 dotnet 标准 2.1)

没有 assembly Attribute for Authors 也不能通过Reflection 或 Shell32

Here's AssembyInfo 属性列表,Authors 不是其中之一

根据问题中更新的屏幕截图,您指的是 Project>Properties>Package 视图,您在此处看到的字段混合了 AssemblyInfoNuget 元数据属性

CopyrightDescription 等属性对于两者都是通用的

其中 PackageIdAuthorsPackageVersion 等属性是 Nuget 元数据属性,无法从程序集中查询。
Nuget 元数据属性 是用作打包过程输入的属性列表

为什么我们甚至 Authors 作为 Project>Properties>Package 中的一个字段?

  • 这样可以被nuget.org引用,显示作者姓名

来自 Microsoft 文档

Authors: A semicolon-separated list of packages authors, matching the profile names on nuget.org. These are displayed in the NuGet Gallery on nuget.org and are used to cross-reference packages by the same authors.

参考文献:

Nuget MetaData Properties

Setting Extended Properties:

Custom Assembly Attributes