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\
)
- Kerangka kerja - 5 karakter (misalnya
- 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