Làm cách nào để xem Thư mục và Tệp trong GAC?


109

Tôi muốn xem các thư mục và thư mục con trong GAC . Cũng muốn biết về cách thêm và xóa khỏi GAC .

Để cài đặt, chúng tôi viết dòng này trong dấu nhắc lệnh bằng cách mở Visual Studio command prompt: -

gacutil /i [assembly path]

Nhưng để gỡ cài đặt, chúng ta chỉ cần: -

gacutil /u [assembly name]

Tại sao?


Nếu bạn đi đến một trong các thư mục lắp ráp trong thư mục Windows, sau đó nhập tên dll mà bạn đang tìm kiếm vào thanh tìm kiếm (của trình khám phá tệp), chúng sẽ bắt đầu hiển thị.
JakeJ

Câu trả lời:


135

Tải về:

gacutil -i "path_to_the_assembly"

Lượt xem:

Mở trong thư mục Windows Explorer

  • .NET 1.0 - NET 3.5: c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x: %windir%\Microsoft.NET\assembly

HOẶC LÀ gacutil –l

Khi bạn chuẩn bị cài đặt một assembly, bạn phải chỉ định nơi gacutilcó thể tìm thấy nó, vì vậy bạn cũng phải cung cấp một đường dẫn đầy đủ. Nhưng khi một assembly đã có trong GAC - hãy gacutilbiết đường dẫn thư mục để nó chỉ cần một tên assembly.

MSDN:


4
Lưu ý rằng đối với .NET 4.0, vị trí GAC hiện là:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco

57

Tôi đến muộn một ngày và thiếu một đô la cho cái này. Nếu bạn muốn xem cấu trúc thư mục của GAC ​​trong Windows Explorer, bạn có thể thực hiện việc này bằng cách sử dụng sổ đăng ký :

  1. Khởi chạy regedit.
  2. Điều hướng đến HKLM \ Software \ Microsoft \ Fusion
  3. Thêm DWORD được gọi là DisableCacheViewer và đặt giá trị thành 1.

Đối với chế độ xem tạm thời, bạn có thể thay thế một ổ đĩa cho đường dẫn thư mục, điều này sẽ loại bỏ các thuộc tính thư mục đặc biệt.

  1. Khởi chạy Command Prompt ở cấp đặc quyền của tài khoản của bạn .
  2. Nhập SUBST Z: C: \ Windows \ assembly
    • Z có thể là bất kỳ ký tự ổ đĩa trống nào.
  3. Mở Máy tính của tôi và tìm trong thư mục thay thế mới.
  4. Để xóa ổ đĩa ảo khỏi Command Prompt, hãy nhập SUBST Z: / D

Về lý do tại sao bạn muốn làm điều gì đó như thế này, tôi đã sử dụng thủ thuật này để so sánh GAC'd DLL giữa các máy khác nhau để đảm bảo chúng thực sự giống nhau.


Bạn có thể tự động chỉnh sửa sổ đăng ký với Powershell:
Textcape

Mục mới 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Tên "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape

40

Khởi chạy chương trình "Run" (Windows Vista / 7/8: gõ chương trình vào thanh tìm kiếm menu bắt đầu) và gõ: C:\windows\assembly\GAC_MSIL

Sau đó, di chuyển đến thư mục mẹ (Windows Vista / 7/8: bằng cách nhấp vào nó trong thanh thám hiểm) để xem tất cả các tệp GAC trong cửa sổ thám hiểm thông thường. Giờ đây, bạn có thể sao chép, thêm và xóa tệp ở mọi nơi khác.


Cảm ơn bạn - nó cho phép tôi sử dụng Windows Explorer được đánh dấu lỗi thời kể từ NET 4
Dave Friedel

8

Để xem các tệp, chỉ cần duyệt chúng từ dấu nhắc lệnh ( cmd), ví dụ:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

Để thêm và xóa tệp khỏi GAC, hãy sử dụng công cụ gacutil


tôi muốn xem nó như một thư mục bình thường.
Rohit Vipin Mathews

@CodingMastero Nó KHÔNG phải là một thư mục bình thường!
Klaus Byskov Pedersen

Chúng ta không thể sử dụng một số hack để xem nó như một điều bình thường?
Rohit Vipin Mathews

@CodingMastero Không, bạn không thể. Bạn có thể xem nó thông qua dấu nhắc lệnh như đã nêu ở trên.
Klaus Byskov Pedersen

1
Đúng. Xin lỗi tôi có thể đã không được rõ ràng ở đây. Bạn không thể sử dụng C:\Windows\assemblyđể duyệt .NET 4.0 GAC. Tất nhiên, bạn vẫn có thể sử dụng nó với .NET 2/3 (nếu cũng được cài đặt). Không có phần mở rộng shell nào có thể so sánh được (AFAIK) hoạt động theo cách tương tự cho C:\Windows\Microsoft.NET\assemblythư mục mới .
Christian.K

5

Bạn cài đặt dưới dạng lắp ráp bằng cách sử dụng:

  • Một chương trình thiết lập mà bạn tác giả cho ứng dụng của mình.
  • Sử dụng gacutil.execông cụ với -itùy chọn từ dòng lệnh.
  • Bỏ lắp ráp vào %windir%\Assembly(chỉ tối đa .NET 3.5, CLR 2.0)

Bạn xem nội dung của GAC ​​bằng cách sử dụng:

  • Công gacutil.execụ với -ltùy chọn.
  • Đối với .NET 2.0, 3.0 và 3.5 (CLR 2.0), duyệt %windir%\assemblybằng Windows Explorer.

Lưu ý rằng vị trí GAC (vật lý) đã thay đổi cho .NET 4.0. Nó không còn ở trong %windir%\Assembly, nhưng bây giờ ở trong %windir%\Microsoft.NET\assembly. Tuy nhiên, bạn không bao giờ nên viết bất kỳ mã nào phụ thuộc vào vị trí thực, bởi vì các công cụ có sẵn hầu như không cần thiết (bỏ qua một số công cụ chẩn đoán hệ thống cây nhà lá vườn "hay ho").


Ngoài gacutil.execông cụ duy nhất có sẵn mà tôi biết là fusion.dll.
Scott Solmer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.