Hầu hết shared assemblies được cài đặt bên trong cache này, nhưng một vài private assemblies cũng được tìm thấy ở đây.. Nếu một private assembly được biên dịch thành ngôn ngữ máy sử dụng
Trang 1
Global Assembly Cache
Global assembly cache là một tên ngụ ý, một nơi lưu trữ (cache) cho toàn bộ các
assemblies sẵn dùng Hầu hết shared assemblies được cài đặt bên trong cache này, nhưng một vài private assemblies cũng được tìm thấy ở đây Nếu một private assembly được biên dịch thành ngôn ngữ máy sử dụng sinh ra ảnh, mã máy được biên dịch cũng được đưa vào trong cache này
Nội dung chính:
• Tạo ảnh bẩm sinh (native images) lúc cài đặt
• Tổng quan shared assemblies với Global Assembly Cache Viewer và Global Assembly Cache Utility
Native Image Generator
Với native image generator tiện ích Ngen.exe chúng ta có thể biên dịch mã IL thành ngôn ngữ máy ngay lúc cài đặt Bằng cách này chương trình khởi đầu nhanh hơn vì sự biên dịch trong quá trình chạy là không cần thiết Tiện ích ngen cài đặt native image
trong native image cache, nó là một phần của global assembly cache
Lưu ý: Tạo native images với ngen chỉ cần thiết nếu native images được tạo cho tất
cả assemblies dùng bởi ứng dụng nếu không trình biên dịch JIT đã phải bắt đầu một cách không hệ thống
Với ngen myassembly, chúng ta có thể biên dịch mã MSIL thành mã máy, và cài đặt
nó vào bên trong nơi lưu native image Điều này nên được thực hiện từ chương trình cài đặt nếu chúng ta muốn đặt assembly trong native image cache
Lưu ý: Sau khi biên dịch assembly thành mã máy bạn không thể huỷ assembly ban
đầu với mã MSIL bởi bì metadata vẫn còn cần đến và nếu bảo vệ thay đổi trên hệ thống mã máy sẽ được xây dưng lại
Với ngen chúng ta cũng hiển thị tất cả assemblies từ native image cache bằng cách chọn option /show Nếu chúng ta thêm tên assembly thì vào /show option chúng ta lấy thông tin về phiên bản đã cài đặt của assembly này:
Trang 2Global Assembly Cache Viewer
GAC Viewer được hiển thị sử dụng shfusion.dll, Nó là một tiện ích của
Windows (Windows shell extension )để hiển thị và chế tác các nội dung của cache Windows shell extension là một COM DLL nó kết hợp với Windows explorer Bạn phải
mở explorer và dùng <windir>/assembly directory
Hình sau là GAC viewer:
Và thuộc tính của nó như sau:
Global Assembly Cache Utility (gacutil.exe)
Assembly viewer có thể được dùng để hiển thị và huỷ các assemblies đang sử dụng trong Windows explorer, nhưng nó không thể sử dụng trong đoạn code đang dùng, như tạo
Trang 3chương trình cài đặt gacutil.exe là một tiện ích để install, uninstall, và danh sách các assemblies sử dụng command line Tất nhiên, nó có thể được sử dụng mà không có mã code sinh kèm dành cho mục đích quản trị
Vài chọn lựa của tiện ích gacutil :
• gacutil /l danh sách tất cả assemblies từ assembly cache
• gacutil /i mydll cài đặt shared assembly mydll vào trong assembly cache
• gacutil /u mydll huỷ cài đặt assembly mydll
• gacutil /ungen mydll huỷ cài đặt assembly từ native image cache