.NET Framework中的"AssemblyTitle"属性

Hel*_*rld 20 .net c# attributes .net-assembly

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

Visual Studio在项目的属性窗口中询问程序集名称以及默认名称空间.有一个AssemblyName属性,但它完整地描述了一个程序集的唯一标识(即文化等).我看不出有什么AssemblyTitle不同AssemblyProduct.

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

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

Han*_*ant 45

[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")]
Run Code Online (Sandbox Code Playgroud)

并查看文件的属性:

在此输入图像描述

一些注释:

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

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


Raj*_*dar 12

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

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

AssemblyProduct = "MyProduct"

AssemblyTitle = "MyProduct.Utilities"

并为另一个集会

AssemblyTitle = "MyProduct.Security"

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

File Description = AssemblyTitle
Product name = AssemblyProduct
Run Code Online (Sandbox Code Playgroud)

  • 赋予它价值优于跳过.如果您的单个组件本身就是一个产品,它们可以是相同的.通常甚至对于单个组装产品(例如产品名称='Johns Pizza')你的装配标题="Johns Pizza Web App"......最后你可以将它们命名为相同的......没有什么不好的事情会发生;) (2认同)

Seb*_*zus 7

AssemblyTitle也出现在任务管理器(Windows 10)的应用程序的名称,例如,在"进程"选项卡或"较少的细节"的说法.

在此输入图像描述