Bagaimana cara melihat Folder dan File di GAC?

109

Saya ingin melihat folder dan sub folder di GAC . Juga ingin tahu tentang menambah dan menghapus dari GAC .

Untuk menginstal kami menulis baris ini di command prompt dengan membuka Visual Studio command prompt: -

gacutil /i [assembly path]

Tetapi untuk menghapus instalasi kita hanya perlu: -

gacutil /u [assembly name]

Mengapa?

Rohit Vipin Mathews
sumber
Jika Anda pergi ke salah satu folder assembly di direktori Windows, lalu ketik nama dll yang Anda cari di bilah pencarian (dari file explorer), mereka akan mulai muncul.
JakeJ

Jawaban:

135

Install:

gacutil -i "path_to_the_assembly"

Melihat:

Buka di folder Windows Explorer

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

ATAU gacutil –l

Ketika Anda akan menginstal sebuah assembly Anda harus menentukan di mana gacutildapat menemukannya, jadi Anda juga harus menyediakan path lengkapnya. Tetapi ketika perakitan sudah ada di GAC - gacutilketahui jalur folder sehingga hanya perlu nama perakitan.

MSDN:

sll
sumber
4
Perhatikan bahwa untuk .NET 4.0, lokasi GAC sekarang:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco
57

Saya terlambat sehari dan kekurangan satu dolar untuk yang satu ini. Jika Anda ingin melihat struktur folder GAC di Windows Explorer, Anda dapat melakukannya dengan menggunakan registri :

  1. Luncurkan regedit.
  2. Arahkan ke HKLM \ Software \ Microsoft \ Fusion
  3. Tambahkan DWORD yang disebut DisableCacheViewer dan setel nilainya ke 1.

Untuk tampilan sementara, Anda dapat mengganti jalur folder dengan drive, yang menghapus properti direktori khusus.

  1. Luncurkan Command Prompt di tingkat hak istimewa akun Anda .
  2. Ketik SUBST Z: C: \ Windows \ assembly
    • Z bisa berupa huruf drive gratis.
  3. Buka My Computer dan lihat di direktori pengganti baru.
  4. Untuk menghapus virtual drive dari Command Prompt, ketik SUBST Z: / D

Adapun mengapa Anda ingin melakukan sesuatu seperti ini, saya telah menggunakan trik ini untuk membandingkan DLL GAC antara mesin yang berbeda untuk memastikan mereka benar-benar sama.

Rakuen42
sumber
Anda dapat mengedit registri secara otomatis dengan Powershell:
Textcape
HKLM Item Baru: \ Software \ Microsoft \ Fusion '-Force | New-ItemProperty -Nama "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape
40

Luncurkan program "Run" (Windows Vista / 7/8: ketik di bilah pencarian menu mulai) dan ketik: C:\windows\assembly\GAC_MSIL

Kemudian pindah ke folder induk (Windows Vista / 7/8: dengan mengkliknya di bilah penjelajah) untuk melihat semua file GAC di jendela penjelajah normal. Sekarang Anda dapat menyalin, menambah, dan menghapus file seperti di tempat lain.

Julius Kunze
sumber
Terima kasih - ini memungkinkan saya untuk menggunakan Windows Explorer yang ditandai usang sejak .NET 4
Dave Friedel
8

Untuk melihat file cukup telusuri dari command prompt ( cmd), misalnya:

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

Untuk menambah dan menghapus file dari GAC gunakan alat ini gacutil

Klaus Byskov Pedersen
sumber
saya ingin melihatnya sebagai folder biasa.
Rohit Vipin Mathews
@CodingMastero Ini BUKAN folder biasa!
Klaus Byskov Pedersen
Bisakah kita menggunakan beberapa peretasan untuk melihatnya sebagai yang normal?
Rohit Vipin Mathews
@Codingo Tidak, Anda tidak bisa. Anda dapat melihatnya melalui command prompt seperti yang disebutkan di atas.
Klaus Byskov Pedersen
1
Iya. Maaf saya mungkin belum jelas di sini. Anda tidak dapat menggunakan C:\Windows\assemblyuntuk menelusuri .NET 4.0 GAC. Tentu saja Anda masih dapat menggunakannya dengan .NET 2/3 (jika itu juga terpasang). Tidak ada ekstensi shell yang sebanding (AFAIK) yang bekerja dengan cara yang sama untuk C:\Windows\Microsoft.NET\assemblydirektori baru .
Christian.K
5

Anda menginstal sebagai majelis dengan menggunakan:

  • Program penyiapan, yang Anda buat untuk aplikasi Anda.
  • Menggunakan gacutil.exealat dengan -iopsi dari baris perintah.
  • Menjatuhkan rakitan %windir%\Assembly(hanya hingga .NET 3.5, CLR 2.0)

Anda melihat konten GAC menggunakan:

  • The gacutil.exealat dengan -lpilihan.
  • Untuk browsing .NET 2.0, 3.0 dan 3.5 (CLR 2.0) %windir%\assemblymenggunakan Windows Explorer.

Perhatikan bahwa lokasi GAC (fisik) telah berubah untuk .NET 4.0. Tidak lagi masuk %windir%\Assembly, tapi sekarang masuk %windir%\Microsoft.NET\assembly. Namun, Anda tidak boleh menulis kode apa pun yang bergantung pada lokasi fisiknya, karena alat yang tersedia hampir tidak diperlukan (selain beberapa alat diagnostik sistem lokal yang "keren").

Christian.K
sumber
Selain gacutil.exesatu-satunya alat lain yang tersedia yang saya ketahui adalah fusion.dll.
Scott Solmer