Bagikan melalui


Gacutil.exe (Alat Singgahan Perakitan Global)

Alat Global Assembly Cache memungkinkan Anda melihat dan memanipulasi konten cache perakitan global dan mengunduh cache.

Alat ini otomatis terpasang dengan Visual Studio. Untuk menjalankan alat, gunakan Prompt Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio.

Pada perintah, masukkan berikut ini:

Sintaks

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

Parameter

Argumen Deskripsi
assemblyName Nama perakitan. Anda dapat menyediakan nama rakitan yang ditentukan sebagian seperti myAssembly atau nama rakitan yang sepenuhnya ditentukan seperti myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.
assemblyPath Nama file yang berisi manifes perakitan.
assemblyListFile Jalur ke file teks ANSI yang mencantumkan rakitan untuk diinstal atau hapus instalannya. Untuk menggunakan file teks untuk menginstal rakitan, tentukan jalur ke setiap rakitan pada baris terpisah dalam file. Alat ini menafsirkan jalur relatif, relatif terhadap lokasi assemblyListFile. Untuk menggunakan file teks untuk menghapus instalan rakitan, tentukan nama rakitan yang sepenuhnya memenuhi syarat untuk setiap rakitan pada baris terpisah dalam file. Lihat contoh konten assemblyListFile nanti dalam topik ini.
Opsi Deskripsi
/cdl Menghapus konten cache unduhan.
/f Tentukan opsi ini dengan opsi /i atau /il untuk memaksa rakitan untuk menginstal ulang. Jika rakitan dengan nama yang sama sudah ada di singgahan perakitan global, alat akan menimpanya.
/h[elp] Menampilkan sintaks perintah dan opsi untuk alat ini.
/i assemblyPath Menginstal rakitan ke dalam singgahan perakitan global.
/if assemblyPath Menginstal rakitan ke dalam singgahan perakitan global. Jika rakitan dengan nama yang sama sudah ada di singgahan perakitan global, alat akan menimpanya.

Menentukan opsi ini setara dengan menentukan opsi /i dan /f bersama-sama.
/il assemblyListFile Menginstal satu atau beberapa rakitan yang ditentukan dalam assemblyListFile ke dalam cache rakitan global.
/ir assemblyPath

skema

id

description
Menginstal rakitan ke dalam singgahan perakitan global dan menambahkan referensi untuk menghitung rakitan. Anda harus menentukan parameter assemblyPath, scheme, id, dan description dengan opsi ini. Untuk deskripsi nilai yang valid yang dapat Anda tentukan untuk parameter ini, lihat opsi /r.

Menentukan opsi ini setara dengan menentukan opsi /i dan /r bersama-sama.
/l [assemblyName] Mencantumkan konten singgahan rakitan global. Jika Anda menentukan parameter assemblyName, alat hanya mencantumkan rakitan yang cocok dengan nama tersebut.
/ldl Mencantumkan konten cache file yang diunduh.
/lr [assemblyName] Mencantumkan semua rakitan dan jumlah referensi yang sesuai. Jika Anda menentukan parameter assemblyName, alat hanya mencantumkan rakitan yang cocok dengan nama tersebut dan jumlah referensi yang sesuai.
/nologo Menekan tampilan banner startup Microsoft.
/r [assemblyName | assemblyPath]

skema

id

description
Menentukan referensi terlacak ke rakitan atau rakitan untuk menginstal atau menghapus instalan. Tentukan opsi ini dengan opsi /i, /il, /u, atau /ul.

Untuk menginstal rakitan, tentukan parameter assemblyPath, scheme, id, dan description dengan opsi ini. Untuk menghapus instalan rakitan, tentukan parameter assemblyName, scheme, id, dan description.

Untuk menghapus referensi ke rakitan, Anda harus menentukan parameter scheme, id, dan description yang sama yang ditentukan dengan opsi /i dan /r (atau /ir) saat rakitan diinstal. Jika Anda menghapus instalan rakitan, alat ini juga menghapus rakitan dari singgahan perakitan global jika itu adalah referensi terakhir untuk dihapus dan jika Windows Installer tidak memiliki referensi luar biasa ke rakitan.

Parameter skema menentukan jenis skema penginstalan. Anda dapat menentukan salah satu nilai berikut:

- UNINSTALL_KEY: Tentukan nilai ini jika alat penginstal menambahkan aplikasi ke Tambahkan/Hapus Program di Microsoft Windows. Aplikasi menambahkan aplikasi itu sendiri ke Tambahkan/Hapus Program dengan menambahkan kunci registri ke HKLM\Software\Microsoft\Windows\CurrentVersion.
- FILEPATH: Tentukan nilai ini jika alat penginstal tidak menambahkan aplikasi ke Tambahkan/Hapus Program.
- OPAQUE: Tentukan nilai ini jika menyediakan kunci registri atau jalur file tidak berlaku untuk skenario penginstalan Anda. Nilai ini memungkinkan Anda menentukan informasi kustom untuk parameter id.

Nilai yang akan ditentukan untuk parameter id tergantung pada nilai yang ditentukan untuk parameter scheme:

- Jika Anda menentukan UNINSTALL_KEY untuk parameter scheme, tentukan nama aplikasi yang diatur dalam kunci registri HKLM\Software\Microsoft\Windows\CurrentVersion. Misalnya, jika kunci registri adalah HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, tentukan MyApp untuk parameter id.
- Jika Anda menentukan FILEPATH untuk parameter scheme, tentukan jalur lengkap ke file yang dapat dieksekusi yang menginstal rakitan sebagai parameter id.
- Jika Anda menentukan OPAQUE untuk parameter scheme, Anda dapat menyediakan bagian data apa pun sebagai parameter id. Data yang Anda tentukan harus diapit dalam tanda kutip ("").

Parameter description memungkinkan Anda menentukan teks deskriptif tentang aplikasi yang akan diinstal. Informasi ini ditampilkan saat referensi dienumerasi.
/silent Menekan tampilan semua output.
/u assemblyName Menghapus instalan rakitan dari singgahan perakitan global.
/uf assemblyName Memaksa rakitan tertentu menghapus instalan dengan menghapus semua referensi ke rakitan.

Menentukan opsi ini setara dengan menentukan opsi /u dan /f bersama-sama. Catatan: Anda tidak dapat menggunakan opsi ini untuk menghapus rakitan yang diinstal menggunakan Pemasang Windows Microsoft. Jika Anda mencoba operasi ini, alat akan menampilkan pesan kesalahan.
/ul assemblyListFile Menghapus instalan satu atau beberapa rakitan yang ditentukan dalam assemblyListFile dari singgahan perakitan global.
/u[ngen] assemblyName Menghapus instalan rakitan yang ditentukan dari singgahan perakitan global. Jika rakitan yang ditentukan memiliki jumlah referensi yang ada, alat menampilkan jumlah referensi dan tidak menghapus rakitan dari singgahan perakitan global. Catatan: Di .NET Framework versi 2.0, /ungen tidak didukung. Sebagai gantinya, gunakan perintah uninstall Ngen.exe (Native Image Generator).

Di .NET Framework versi 1.0 dan 1.1, menentukan /ungen menyebabkan Gacutil.exe menghapus rakitan dari cache gambar native. Cache ini menyimpan gambar asli untuk rakitan yang telah dibuat menggunakan Ngen.exe (Native Image Generator).
/ur assemblyName

skema

id

description
Menghapus instalasi referensi ke rakitan tertentu dari singgahan perakitan global. Untuk menghapus referensi ke rakitan, Anda harus menentukan parameter scheme, id, dan description yang sama yang ditentukan dengan opsi /i dan /r (atau /ir) saat rakitan diinstal. Untuk deskripsi nilai yang valid yang dapat Anda tentukan untuk parameter ini, lihat opsi /r.

Menentukan opsi ini setara dengan menentukan opsi /u dan /r bersama-sama.
/? Menampilkan sintaks perintah dan opsi untuk alat ini.

Keterangan

Catatan

Anda harus memiliki hak administrator untuk menggunakan Gacutil.exe.

Secara khusus, Gacutil.exe memungkinkan Anda menginstal rakitan ke dalam cache, menghapusnya dari cache, dan mencantumkan konten cache.

Gacutil.exe menyediakan opsi yang mendukung penghitungan referensi yang mirip dengan skema penghitungan referensi yang didukung oleh Pemasang Windows. Anda dapat menggunakan Gacutil.exe untuk menginstal dua aplikasi yang menginstal rakitan yang sama; alat ini melacak jumlah referensi ke rakitan. Akibatnya, rakitan akan tetap berada di komputer sampai kedua aplikasi dihapus instalannya. Jika Anda menggunakan Gacutil.exe untuk penginstalan produk aktual, gunakan opsi yang mendukung penghitungan referensi. Gunakan opsi /i dan /r bersama-sama untuk menginstal rakitan dan menambahkan referensi untuk menghitungnya. Gunakan opsi /u dan /r bersama-sama untuk menghapus jumlah referensi untuk rakitan. Ketahuilah bahwa menggunakan opsi /i dan /u saja tidak mendukung penghitungan referensi. Opsi ini sesuai untuk digunakan selama pengembangan produk tetapi tidak untuk penginstalan produk aktual.

Gunakan opsi /il atau /ul untuk menginstal atau menghapus daftar rakitan yang disimpan dalam file teks ANSI. Isi file teks harus diformat dengan benar. Untuk menggunakan file teks untuk menginstal rakitan, tentukan jalur ke setiap rakitan pada baris terpisah dalam file. Contoh berikut menunjukkan konten file yang berisi rakitan untuk diinstal.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Untuk menggunakan file teks untuk menghapus instalan rakitan, tentukan nama rakitan yang sepenuhnya memenuhi syarat untuk setiap rakitan pada baris terpisah dalam file. Contoh berikut menunjukkan konten file yang berisi rakitan untuk dihapus instalannya.

myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab

Catatan

Mencoba menginstal rakitan dengan nama file yang lebih panjang dari antara 79 dan 91 karakter (tidak termasuk ekstensi file) dapat mengakibatkan kesalahan berikut:

Failure adding assembly to the cache:   The file name is too long.

Ini karena secara internal Gacutil.exe membangun jalur hingga MAX_PATH karakter yang terdiri dari elemen-elemen berikut:

  • GAC Root - 34 karakter (yaitu C:\Windows\Microsoft.NET\assembly\)
  • Arsitektur - 7 atau 9 karakter (yaitu GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName - Hingga 91 karakter, tergantung pada ukuran elemen lain (misalnya System.Xml.Linq\)
  • AssemblyInfo - 31 hingga 48 karakter atau lebih terdiri dari:
    • Kerangka kerja - 5 karakter (misalnya v4.0_)
    • AssemblyVersion - 8 hingga 24 karakter (misalnya 9.0.1000.0_)
    • AssemblyLanguage - 1 hingga 8 karakter (misalnya de_, sr-Cyrl_)
    • PublicKey - 17 karakter (misalnya 31bf3856ad364e35\)
  • DllFileName - Hingga 91 + 4 karakter (yaitu <AssemblyName>.dll)

Contoh

Perintah berikut menginstal mydll.dll rakitan ke dalam singgahan perakitan global.

gacutil /i mydll.dll

Perintah berikut menghapus hello rakitan dari singgahan perakitan global selama tidak ada jumlah referensi untuk rakitan.

gacutil /u hello

Perhatikan bahwa perintah sebelumnya mungkin menghapus lebih dari satu rakitan dari singgahan perakitan karena nama rakitan tidak sepenuhnya ditentukan. Misalnya, jika versi 1.0.0.0 dan 3.2.2.1 hello diinstal di cache, perintah gacutil /u hello akan menghapus kedua rakitan.

Gunakan contoh berikut untuk menghindari penghapusan lebih dari satu rakitan. Perintah ini hanya menghapus rakitan hello yang cocok dengan nomor versi, kultur, dan kunci publik yang sepenuhnya ditentukan.

gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca

Perintah berikut menginstal rakitan yang ditentukan dalam file assemblyList.txt ke dalam singgahan perakitan global.

gacutil /il assemblyList.txt

Perintah berikut menghapus rakitan yang ditentukan dalam assemblyList.txt file dari cache rakitan global.

gacutil /ul assemblyList.txt

Perintah berikut menginstal myDll.dll ke dalam singgahan perakitan global dan menambahkan referensi untuk menghitungnya. myDll.dll rakitan digunakan oleh MyApp aplikasi. Parameter UNINSTALL_KEY MyApp menentukan kunci registri yang menambahkan MyApp ke Tambahkan/Hapus Program di Windows. Parameter deskripsi ditentukan sebagai My Application Description.

gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"

Perintah berikut menginstal myDll.dll ke dalam singgahan perakitan global dan menambahkan referensi untuk menghitungnya. Parameter scheme, FILEPATH, dan parameter id, c:\applications\myApp\myApp.exe, menentukan jalur ke aplikasi yang menginstal myDll.dll. Parameter deskripsi ditentukan sebagai MyApp.

gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

Perintah berikut menginstal myDll.dll ke dalam singgahan perakitan global dan menambahkan referensi untuk menghitungnya. Parameter scheme, OPAQUE, memungkinkan Anda menyesuaikan parameter id dan description.

gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"

Perintah berikut menghapus referensi ke myDll.dll oleh myApp aplikasi. Jika ini adalah referensi terakhir ke rakitan, ini juga akan menghapus rakitan dari singgahan perakitan global.

gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

Perintah berikut mencantumkan konten singgahan perakitan global.

gacutil /l

Lihat juga