1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Assembly part 7 pdf

3 295 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cấu hình Các thành phần COM dùng registry
Chuyên ngành Công nghệ thông tin
Thể loại Tài liệu
Định dạng
Số trang 3
Dung lượng 137,37 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cơ chế về phiên bản Như bạn đã biết, .NET Runtime không buồn kiểm tra phiên bản đối với các private assembly.. Trên .NET, các shared assembly sẽ được nhận diện là duy nhất thông qua tê

Trang 1

Cấu hình

Các thành phần COM dùng registry để định hình các thành phần Cấu hình của các ứng dụng NET được thực hiện khi sử dụng các tập tin cấu hình Với đăng ký cấu hình

xcopy-deployment không thể thực hiện được Các file cấu hình dùng cú pháp XML để xác định thiết lập startup và runtime cho các ứng dụng

Cơ chế về phiên bản

Như bạn đã biết, NET Runtime không buồn kiểm tra phiên bản đối với các private assembly Nhưng khi dùng shared assembly thì vấn đề phiên bản lại trở thành quan trọng Bây giờ, ta thử tìm hiểu cơ chế đánh số phiên bản (gọi là versioning) và kiểm tra đối với shared assembly

Trên NET, các shared assembly sẽ được nhận diện là duy nhất thông qua tên và phiên bản, GAC cho phép những phiên bản khác "sống chung cùng nhà, tay trong tay" (thường gọi là side-by-side) nghĩa là phiên bản cũ vẫn hiện diện cùng với phiên bản mới hơn Như vậy, mọi ứng dụng đặc biệt nào đó có thể bảo "cho tớ phiên bản mới toanh nhất" hoặc "cho tớ build chót nhất của Verion 2", hoặc kể cả "chỉ cho tớ phiên bản mà ứng dụng đang sử dụng"

Một con số đánh dấu phiên bản của một assembly trông giống như sau: 1:0:2204:21,

nghĩa là dãy 4 con số phân cách bởi dấu hai chấm Hai số đầu (1:0) là phiên bản major

và minor Con số thứ ba (2204) là số build, còn con số thứ tư (21) là số revision (số

chỉnh sửa duyệt lại)

Khi hai assembly có những số major hoặc minor khá nhau (chẳng hạn1.0 so với 1.5) thì được xem như là hoàn toàn bất tương thích (incompatible) Khi các assembly khác nhau khá xa dựa trên con số Major và Minor, thì bạn có thể cắc chắn là có nhiều thay đổi đáng kể (nghĩa là thay đổi tên các hàm hành sự, kiểu dữ liệu được thêm vào hoặc bị gỡ

bỏ, các thông số bị thay đổi, v.v ) Do đó, nếu ứng dụng client yêu cầu gắn kết với phiên bản 2.0 nhưng GAC chỉ chứa phiên bản 2.5 thì yêu cầu gắn kết thất bại (trừ phi bị phủ quyết bởi tập tin cấu hình ứng dụng)

Khi hai phiên bản mang cung số major và minor nhưng lại có số build khác nhau (chẳng hạn 2.5.0.0 so với 2.5.1.0) thì NET Rungtime giả định chúng có thể là tương thích với nhau (nói cách khác xem như có tương thích lui nhưng không bảo đảm) Cuối cùng, khi ba con số đầu giống nhau, chỉ khác số revision (còn gọi là Quick fix

Engineering, QFE) thì được xem như lf hoàn toàn tương thích

Trang 2

Số duyệt lại QFE dành cho những lần sửa chữa bug Nếu bạn sửa một bug và cho biết

là DLL của bạn hoàn toàn tương thích đối với phiên bản hiện hữu, thì bạn phải tăng con

số duyệt lại Khi một ứng dụng nạp một assembly, thì nó cho biết phiên bản major và minor nó muốn nạp, và AssemblyResolver sẽ tìm ra con số build và revision cao nhất

Ghi nhận thông tin về Version

Tới đây, có thể bạn hỏi con số phiên bản được khai báo ở đâu? Bạn nhớ lại là mỗi dự

án C# đều định nghĩa một tập tin mang tên AssemblyInfo.cs Nếu bạn quan sát tập tin này (bạn mở dự án CarLibrary.dll chẳng hạn, goi Solution Explorer vào rồi double-click lên assemblyInfo.cs thì cửa sổ tập tin này sẽ hiện lên) Bạn thấy một chuỗi như sau được đặt để:

[asssembly: assemblyVersion("1.0.*")]

Mỗi dự án mới C# bắt đầu cuộc sống với phiên bản 1.0 Khi bạn build phiên bản mới của một shard assembly, phần lớn công việc của bạn là nhật tu con số thứ tư của phiên bản Bạn nên nhớ là Cisual Stidio.NET IDE sẽ tự động tăng con số build và revision (được đánh dấu bởi tag '*') Bạn có thể nhật tu chuỗi trên như sau:

[asssembly: AssemblyVersion("1.0.0.0")]

Cơ bản về phobing

.NET Runtime giải quyết việc tìm ra nơi tá túc của một private assembly bằng cách sử dụng một kỹ thuật được gọi là probing Đây là một tiến trình ánh xạ một qui chiếu

assembly nằm ngoài (external assembly reference), nghĩa là [.assembly extern], về đúng tập tin nhị phân tương ứng Thí dụ, khi NET Runtime đọc hàng sau đây từ một manifest: .assembly extern carlLibrary

{

}

thì một cuộc dò tìm sẽ được thực hiện trên thư mục ứng dụng đối với một tập tin mang

tên CarLibrary.dll Nếu không thể tìm thấy nơi tá túc của một DLL binary, thì lại thử

đối với một CarLibrary.exe Bạn nhớ cho là nếu assembly chứa tag [.publickeytoken], nghĩa là liên quan đến một shared assembly, thì GAC sẽ được dò tìm trước tiên (ta sẽ xem chi tiết sau trông chốc lát)

Trang 3

 

Ngày đăng: 24/12/2013, 11:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN