2012-09-12 39 views
6

Các AssemblyInfo.cs mặc định trông như thế này:Điều gì là cần thiết để có trong AssemblyInfo.cs?

using System.Reflection; 
using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information 
// associated with an assembly. 
[assembly: AssemblyTitle("Foobar")] 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("")] 
[assembly: AssemblyProduct("Foobar")] 
[assembly: AssemblyCopyright("Copyright © 2012")] 
[assembly: AssemblyTrademark("")] 
[assembly: AssemblyCulture("")] 

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

// The following GUID is for the ID of the typelib if this project is exposed to COM 
[assembly: Guid("e8cd5d7d-5fba-4fe1-a753-f0cc6e052bf2")] 

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

gì về tất cả điều này là thực sự cần thiết? Ví dụ tôi có thể loại bỏ các hướng dẫn và ComVisible nếu tôi không cần điều đó, hoặc AssemblyTrademark vì nó chỉ là trống rỗng anyways?

+1

Điều gì đã xảy ra khi bạn thử? –

+3

Vâng, nó không sụp đổ, nhưng đã tự hỏi nếu có bất kỳ tác động lớn hơn tôi không biết về, như lắp ráp không sử dụng được trong các tình huống nhất định hoặc bất cứ điều gì :) – Svish

+0

Vấn đề duy nhất tôi có thể nghĩ là đặt nhiều bản sao của một hội đồng trong GAC. Bạn có thể đặt nhiều phiên bản của một hội đồng ở đó. Bạn có thể có nhiều bản sao của cùng một phiên bản nếu mỗi bản sao có một nền văn hóa khác nhau. Nhưng nếu thông tin phiên bản bị thiếu, tại sao đó có thể là một vấn đề. –

Trả lời

9

Đây chỉ là siêu dữ liệu - không có siêu dữ liệu nào là số yêu cầu như vậy.

ComVisibleGuid chỉ cần thiết nếu bạn đang thực hiện COM interop với lắp ráp. Các thuộc tính khác kết thúc dưới dạng siêu dữ liệu trên DLL (hiển thị thông qua tab Version của hộp thoại thuộc tính tệp trong Windows Explorer).

Bạn có thể xóa tệp và ứng dụng của bạn sẽ biên dịch tốt, mặc dù nó sẽ không có siêu dữ liệu và sẽ không hiển thị COM.

3

Thực sự cần thiết không phải là bất kỳ thuộc tính nào. Nhưng bạn nên sử dụng chúng!

[assembly: AssemblyVersion("1.0.0.0")] 

AssemblyVersion cung cấp phiên bản cho hội đồng và được sử dụng từ CLR để xác định lắp ráp (StrongName). AssemblyFileVersion chỉ là một thuộc tính trên FileDialog.

[assembly: AssemblyInformationalVersion("1.0.0.0")] 

Bạn có thể nhưng có bất kỳ thông tin phiên bản nào khác theo cách bạn muốn. Một thuộc tính thật sự tốt đẹp như sau:

[assembly: SuppressIldasm] 

Đó là đàn áp để mở lắp ráp của bạn trong ildasm nhìn vào IL-Code.

Có nhiều thứ khác để viết về các thuộc tính lắp ráp. Bạn có thể xem MSDN để biết thêm thông tin không ..

+4

'SuppressIldasmAttribute' không làm gì ngoài việc" hỏi "' ildasm.exe' không xuất ra IL cho assembly của bạn. * Không có cách nào * điều này có bảo vệ mã của bạn không. – tomfanning

+0

Bạn nói đúng, nhưng đối với một người không có kiến ​​thức tuyệt vời về làm thế nào để gián điệp IL, sẽ được dừng lại. –

+0

Nó không có kiến ​​thức tuyệt vời để kích hoạt Reflector hoặc ILSpy. – tomfanning

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