Bạn có thể vui lòng giải thích Assembly trong C # hoặc .NET là gì không?
- Nó bắt đầu từ đâu và kết thúc ở đâu?
- Tôi nên biết thông tin quan trọng nào về Assemblies?
Bạn có thể vui lòng giải thích Assembly trong C # hoặc .NET là gì không?
Câu trả lời:
Hợp ngữ là đầu ra được biên dịch của mã của bạn, thường là DLL, nhưng EXE của bạn cũng là một hợp ngữ. Đây là đơn vị triển khai nhỏ nhất cho bất kỳ dự án .NET nào.
Hợp ngữ thường chứa mã .NET bằng MSIL (ngôn ngữ Trung cấp của Microsoft) sẽ được biên dịch sang mã gốc ("JITted" - được biên dịch bởi trình biên dịch Just-In-Time) lần đầu tiên nó được thực thi trên một máy nhất định. Mã đã biên dịch đó cũng sẽ được lưu trữ trong assembly và được sử dụng lại trong các lần gọi tiếp theo.
Hợp ngữ cũng có thể chứa các tài nguyên như biểu tượng, bitmap, bảng chuỗi, v.v. Hơn nữa, assembly cũng chứa siêu dữ liệu trong bản kê khai assembly - thông tin như số phiên bản, tên mạnh, văn hóa, các cụm được tham chiếu, v.v.
Trong 99% trường hợp của bạn, một tập hợp bằng một tệp vật lý trên đĩa - trường hợp một tập hợp nhiều tệp (một tập hợp, được phân phối trên nhiều tệp duy nhất) dường như là một trường hợp cạnh khá kỳ quặc mà tôi đã chưa bao giờ gặp phải cho đến nay trong hơn 5 năm phát triển .NET của tôi.
Trong một tập hợp nhiều tệp sẽ vẫn chỉ có một tệp kê khai hợp ngữ trong DLL hoặc EXE và mã MSIL trong nhiều tệp netmodule.
Trong khuôn khổ Microsoft .NET, hợp ngữ là một thư viện mã được biên dịch một phần để sử dụng trong triển khai, lập phiên bản và bảo mật.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Hợp ngữ là một tệp được trình biên dịch tự động tạo khi biên dịch thành công mọi ứng dụng .NET. Nó có thể là Thư viện liên kết động hoặc tệp thi hành. Nó chỉ được tạo một lần cho một ứng dụng và sau mỗi lần biên dịch tiếp theo, assembly sẽ được cập nhật.
Đây là một lời giải thích khác về cấu tạo của .NET Assemblies, một trích dẫn nhỏ:
Khuôn khổ .NET bao gồm các khái niệm về mô-đun, hợp ngữ, cả hai đều lưu trữ siêu dữ liệu và thông tin kê khai. Một lắp ráp có thể chứa nhiều mô-đun. Visual C # chỉ tạo ra một mô-đun được trình biên dịch C # (csc.exe) biến thành một hợp ngữ, nhưng một hợp ngữ có thể liên kết nhiều mô-đun .NET với nhau thông qua công cụ dòng lệnh lắp ráp liên kết (al.exe). Ví dụ: mỗi tệp .cs mã nguồn của bạn có thể được biên dịch thành một mô-đun và được liên kết với nhau để tạo thành một hợp ngữ - một hợp ngữ chỉ là một tập hợp các mô-đun và tài nguyên. Tuy nhiên, một trong những mô-đun này; phải chứa thông tin siêu dữ liệu kê khai (xem bên dưới) để CLR hiểu được assembly.
....
Sau khi tạo .exe hoặc .dll mới bên trong VS.NET, bạn sẽ thấy tệp của mình xuất hiện bên trong thư mục bin. Mở nó trong notepad sẽ cho ra những thứ vô nghĩa, hoặc thậm chí bên trong một trình soạn thảo thập lục phân mà không biết cấu trúc của tệp, bạn cần một công cụ như ildasm.exe hoặc CFF explorer để tạo ý nghĩa từ nó. Cấu trúc của cụm như sau:Tiêu đề PE Tiêu đề
CLR Tiêu đề
CLR Siêu dữ liệu
CLR
Mã IL
Dữ liệu gốc
Câu trả lời là để nắm bắt ngay lập tức.
Nói một cách đơn giản, nó là dự án được biên dịch liên quan đến các lớp của bạn và các tệp bổ sung, nếu có. Đó là, mỗi dự án trong một giải pháp là lắp ráp .
Hoặc cụ thể hơn,
Hợp ngữ là nơi một kiểu được lưu trữ trong hệ thống thịt. Assemblies là một cơ chế để triển khai mã. Ví dụ, hợp
System.Data.dll
ngữ chứa các kiểu để quản lý dữ liệu. Để sử dụng các kiểu trong các tập hợp khác, chúng phải được tham chiếu. - Nguồn
Làm thế nào để chúng tôi biết nó? Nếu bạn nhìn vào các thuộc tính của một dự án theo giải pháp, bạn có thể thấy những hình ảnh sau.
Khi bạn biên dịch dự án, nó sẽ chuyển sang DLL hoặc EXE .
Khi mã nguồn được biên dịch bởi trình biên dịch ngôn ngữ, nó sẽ tạo ra một hội được quản lý và MSIL (Ngôn ngữ trung gian của MisroSoft). Assembly đó chứa tệp .dll hoặc .exe . Assebmly có thể có hai loại Private Assembly và Shared Assembly , shared Assembly được lưu trữ trong GAC (Global Assembly Cache) để bất kỳ ứng dụng nào cũng có thể tham chiếu đến nó trong khi private assembly được lưu trữ trong thư mục ứng dụng mà chỉ một Ứng dụng có thể sử dụng.
Hợp ngữ là một DLL hoặc EXE sẽ được tạo khi bạn xuất bản nó hoặc biên dịch ứng dụng của bạn.
Assembly là một tập hợp các đơn vị logic. Đơn vị logic đề cập đến các loại và tài nguyên cần thiết để xây dựng một ứng dụng và triển khai chúng bằng .Net framework. Về cơ bản, Assembly là một tập hợp các Exe và DLL. Nó có thể di động và thực thi được.
Sau khi viết mã nguồn của chương trình (dự án) của bạn, một tệp được tạo ra có thể là DLL hoặc EXE tùy thuộc vào dự án của bạn. Nó chỉ thực hiện một lần cho một dự án duy nhất. Nó có hai loại 1: - đơn 2: - hợp ngữ đơn chia sẻ hoặc đa chương trình chỉ được sử dụng trong một chương trình duy nhất trong khi chia sẻ có thể được sử dụng cho đa chương trình