.NET Framework中的“AssemblyTitle”属性

AssemblyTitle属性的实际用途是什么? MSDN表示它指定了程序集的描述,并且程序集标题是一个友好名称,可以包含空格。

Visual Studio在项目的属性窗口中询问程序集名称以及默认名称空间。 有一个AssemblyName属性,但它完整地描述了程序集的唯一标识(即文化等)。 我没有看到AssemblyTitleAssemblyTitle区别。

我使用IL反汇编程序来了解Microsoft如何使用AssemblyTitle 。 我发现在mscorlib.dll中AssemblyTitleAssemblyProductAssemblyDefaultAlias都设置为"mscorlib.dll"

总之,我真正希望看到的是使用AssemblyTitle实际例子。

您的产品可以包含多个组件。

所有程序集都将具有单个产品名称,并且各个程序集将具有自己的标题。

AssemblyProduct = "MyProduct"

AssemblyTitle = "MyProduct.Utilities"

并为另一个集会

AssemblyTitle = "MyProduct.Security"

程序集标题也用于资源管理器文件属性等。 File > Properties > Details选项卡

 File Description = AssemblyTitle Product name = AssemblyProduct 

[AssemblyTitle]是一个非常大的问题,当你右键单击程序集并使用Properties + Details时,它是直接可见的。

一个让它更加明显的例子。 让我们从这个AssemblyInfo.cs文件开始:

 [assembly: AssemblyTitle("AssemblyTitle")] [assembly: AssemblyDescription("AssemblyDescription")] [assembly: AssemblyConfiguration("AssemblyConfiguration")] [assembly: AssemblyCompany("AssemblyCompany")] [assembly: AssemblyProduct("AssemblyProduct")] [assembly: AssemblyCopyright("AssemblyCopyright")] [assembly: AssemblyTrademark("AssemblyTrademark")] [assembly: AssemblyCulture("")] [assembly: Guid("7da36bdf-39fb-4a4d-b98c-ecefd99b155a")] [assembly: AssemblyVersion("1.2.3.4")] [assembly: AssemblyFileVersion("5.6.7.8")] 

并查看文件的属性:

在此处输入图像描述

一些注释:

  • 请注意[AssemblyDescription]如何产生误导,它实际上是您在属性表中看到的标题。
  • 不显示说明,配置和公司。 您可能希望将公司名称合并到可见的版权中。 描述和公司实际上存在于非托管版本资源中,但Windows不显示它。
  • [AssemblyCulture]很特殊,它被卫星组件用于本地化
  • [Guid]很特别,如果你创建一个[ComVisible]程序集,它会设置类型库guid
  • [AssemblyVersion]非常特别,在.NET Framework中非常重要。 没有显示它是一个主要的挂断。 您可以在XP中看到它,而不是在以后的Windows版本中。 强烈的考虑是使[AssemblyFileVersion]具有相同的值。
  • 显示的“产品版本”与“文件版本”相同。 这也不是很好,你想添加[AssemblyInformationalVersion]属性来解决这个问题。

它很古怪,Windows组和DevDiv并不总能很好地协同工作。

AssemblyTitle也在任务管理器(Windows 10)中显示为应用程序的名称,例如在“进程”选项卡或“更少详细信息”视图中。

在此处输入图像描述