2009-10-22 37 views

Trả lời

20

Nếu cả hai cụm được đặt tên mạnh (ký), CLR sẽ luôn tải từ GAC.

Dưới đây là các bước thời gian chạy sử dụng để giải quyết tài liệu tham khảo lắp ráp (từ How the Runtime Locates Assemblies):

  1. Xác định phiên bản lắp ráp chính xác bằng cách kiểm tra áp dụng file cấu hình, bao gồm cả các tập tin cấu hình ứng dụng, nhà xuất bản tệp chính sách và tệp cấu hình máy . Nếu tệp cấu hình nằm trên máy từ xa , thời gian chạy phải tìm và tải xuống ứng dụng tệp cấu hình trước.

  2. Kiểm tra xem tên lắp ráp có bị ràng buộc trước và, nếu có, sử dụng cụm đã được tải trước đó. Nếu một yêu cầu trước đó để tải lắp ráp không thành công, yêu cầu không thành công ngay lập tức mà không cố gắng tải lắp ráp.

  3. Kiểm tra bộ nhớ cache lắp ráp chung. Nếu lắp ráp được tìm thấy ở đó, thời gian chạy sử dụng lắp ráp này.

  4. dò cho lắp ráp (... một số tài liệu bỏ qua ...)

Như đã trình bày sau trong cùng bài viết:

Không có phiên bản kiểm tra lắp ráp không có tên mạnh, cũng như thời gian chạy kiểm tra bộ nhớ cache lắp ráp toàn cục cho các hội đồng không có tên mạnh.

Vì vậy, nếu bạn có thể đủ khả năng để xóa đăng ký khỏi hội đồng địa phương, ứng dụng sẽ sử dụng nó thay vì ký tên trong GAC.

Để biết thêm chi tiết hơn bạn có thể muốn về cơ chế ràng buộc thời gian chạy, hãy xem Suzanne Cook's blog.

This blog entry from Scott Hanselman cũng cung cấp tổng quan tuyệt vời về quy trình ràng buộc.

-1

Để triển khai thành công ứng dụng .NET Framework của bạn, bạn phải hiểu cách thời gian chạy ngôn ngữ chung định vị và liên kết với các assembly tạo nên ứng dụng của bạn. Theo mặc định, thời gian chạy cố gắng liên kết với phiên bản chính xác của một assembly mà ứng dụng đã được xây dựng.Hành vi mặc định này có thể bị ghi đè bởi cài đặt tệp cấu hình.

Bạn có thể xem thông tin liên kết trong tệp nhật ký bằng Trình xem nhật ký ràng buộc lắp ráp (Fuslogvw.exe), được bao gồm trong Bộ phát triển phần mềm Windows (SDK).

s

1

Nếu bạn có thể thay đổi số phiên bản của dll địa phương, bạn có thể sử dụng một chuyển hướng phiên bản dll sử dụng thuộc tính oldversion. Bạn có thể sử dụng một tên mạnh mẽ đối với các hội đồng địa phương: Hãy tìm trang này: http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx

Ngoài ra bạn nên xem xét rằng chúng ta có thể thay đổi số phiên bản của một hội đồng biên soạn như nó được mô tả ở đây: Change Assembly Version in a compiled .NET assembly

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