2014-04-17 21 views
9

Việc sử dụng thực tế thuộc tính AssemblyTitle là gì? MSDN nói rằng nó chỉ định một mô tả cho một hội đồng và rằng tiêu đề lắp ráp là một tên thân thiện có thể bao gồm không gian.Thuộc tính 'AssemblyTitle' trong Khuôn khổ .NET

Visual Studio yêu cầu tên lắp ráp trong cửa sổ thuộc tính của dự án cùng với không gian tên mặc định. Có một thuộc tính AssemblyName nhưng nó mô tả danh tính duy nhất của một hội đồng đầy đủ (ví dụ: văn hóa, v.v.). Tôi không thấy cách AssemblyTitle khác với AssemblyProduct.

Tôi đã sử dụng Trình phân tách IL để xem cách Microsoft sử dụng AssemblyTitle. Tôi đã phát hiện ra rằng trong mscorlib.dll, AssemblyTitle, AssemblyProductAssemblyDefaultAlias đều được đặt thành "mscorlib.dll".

Tóm lại, điều tôi thực sự muốn xem là ví dụ thực tế về việc sử dụng AssemblyTitle.

Trả lời

7

Sản phẩm của bạn có thể bao gồm một số cụm.

Tất cả các hội đồng sẽ có một tên sản phẩm duy nhất và các hội đồng cá nhân sẽ có tiêu đề riêng của họ.

AssemblyProduct = "MyProduct"

AssemblyTitle = "MyProduct.Utilities"

và để lắp ráp khác

AssemblyTitle = "MyProduct.Security"

tiêu đề lắp ráp cũng được sử dụng trong các thuộc tính tập tin explorer vv File > Properties > Details tab

File Description = AssemblyTitle 
Product name = AssemblyProduct 
+0

Và vì vậy nếu tôi có sản phẩm lắp ráp đơn lẻ, tôi chỉ nên bỏ qua hoặc cho hai giá trị giống nhau? – HelloWorld

+1

cho giá trị tốt hơn là bỏ qua. Nếu lắp ráp duy nhất của bạn là một sản phẩm trong chính nó, họ có thể giống nhau. thường là ngay cả đối với các sản phẩm lắp ráp đơn (ví dụ: Tên sản phẩm = 'Johns Pizza') tiêu đề lắp ráp của bạn = "Johns Pizza Web App" .. và cuối cùng bạn có thể đặt tên cho chúng giống nhau .. không có gì xấu xảy ra;) –

35

[AssemblyTitle] là một giao dịch khá lớn, nó hiển thị trực tiếp khi bạn bấm chuột phải vào lắp ráp và sử dụng Properties + Details.

Ví dụ để làm cho nó hiển thị rõ hơn. Hãy bắt đầu với AssemblyInfo.cs tập tin này:

[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")] 

Và nhìn vào các thuộc tính của file:

enter image description here

Một số chú thích như sau:

  • Lưu ý cách [AssemblyDescription] gây hiểu lầm, nó thực sự là Tiêu đề bạn thấy trong bảng thuộc tính.
  • Mô tả, Cấu hình và Công ty không được hiển thị. Bạn có thể muốn hợp nhất tên công ty vào Bản quyền hiển thị. Mô tả và Công ty thực sự có mặt trong tài nguyên phiên bản không được quản lý nhưng Windows không hiển thị nó.
  • [AssemblyCulture] là đặc biệt, nó được sử dụng bởi Satellite Assembly cho nội địa hóa
  • [Guid] là đặc biệt, nó đặt thư viện kiểu guid nếu bạn tạo một [ComVisible] lắp ráp
  • [AssemblyVersion] là phi thường đặc biệt, một thỏa thuận thực sự lớn trong .NET Framework. Rằng nó không được hiển thị là một hangup lớn. Bạn có thể thấy nó trong XP, chứ không phải trong các phiên bản Windows sau này. Xem xét mạnh mẽ là làm cho [AssemblyFileVersion] có cùng giá trị.
  • "Phiên bản sản phẩm" được hiển thị giống với "Phiên bản tệp". Điều đó cũng không tốt lắm, bạn muốn thêm thuộc tính [AssemblyInformationalVersion] để sửa lỗi đó.

Thật kỳ quặc, nhóm Windows và DevDiv không phải lúc nào cũng hoạt động tốt.

+0

Bạn có nghĩ nó có ý nghĩa để có AssemblyTitle giống như tên assembly trong Properties-> Application-> Assembly name? – HelloWorld

+0

Chỉ khi bạn không thể đưa ra mô tả tốt hơn. Chắc chắn bạn có thể. –

3

AssemblyTitle cũng xuất hiện dưới dạng tên của ứng dụng trong trình quản lý tác vụ (Windows 10), ví dụ: trong tab "Quy trình" hoặc chế độ xem "Chi tiết ít hơn".

enter image description here

+0

Dường như khi 'AssemblyTitle' trống, điều này sẽ hiển thị tên thực thi. Hoặc có thể đó chỉ dành cho các quá trình mà nó xác định là "nền". Không hoàn toàn chắc chắn. – jpmc26

Các vấn đề liên quan