.NET Framework中的“AssemblyTitle”属性

时间:2014-04-17 23:01:41

标签: c# .net attributes .net-assembly

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

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

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

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

3 个答案:

答案 0 :(得分:45)

[AssemblyTitle]是一个非常大的问题,当您右键单击程序集并使用“属性+详细信息”时,它是直接可见的。

使其更加明显的示例。让我们从这个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")]

查看文件的属性:

enter image description here

对此的一些注释:

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

奇怪的是,Windows组和DevDiv并不能很好地协同工作。

答案 1 :(得分:12)

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

所有程序集都只有一个产品名称,各个程序集都有自己的标题。

<强> AssemblyProduct = "MyProduct"

AssemblyTitle = "MyProduct.Utilities"

和另一个集会

AssemblyTitle = "MyProduct.Security"

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

File Description = AssemblyTitle
Product name = AssemblyProduct

答案 2 :(得分:7)

AssemblyTitle在任务管理器(Windows 10)中也显示为应用程序的名称,例如在&#34;流程&#34;标签或&#34;更少的细节&#34;图。

enter image description here