Gacutil.exe (Genel Bütünleştirilmiş Kod Önbelleği aracı)

Genel Bütünleştirilmiş Kod Önbelleği aracı genel bütünleştirilmiş kod önbelleğinin ve indirme önbelleğinin içeriğini görüntülemenize ve değiştirmenize olanak sağlar.

Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Developer PowerShell'i kullanın.

Komut satırına şunu yazın:

Sözdizimi

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

Parametreler

Bağımsız Değişken Description
Assemblyname Bir derlemenin adı. gibi myAssembly kısmen belirtilen bir derleme adı veya gibi myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5tam olarak belirtilen bir derleme adı sağlayabilirsiniz.
Assemblypath Bir derleme bildirimi içeren dosyanın adı.
assemblyListFile Yüklenecek veya kaldırılacak derlemeleri listeleyen bir ANSI metin dosyasının yolu. Derlemeleri yüklemek üzere metin dosyası kullanmak için, dosyada her derleme için ayrı bir satırda yolu belirtin. Araç, assemblyListFile konumuna göre göreli yolları yorumlar. Derlemeleri kaldırmak üzere bir metin dosyası kullanmak için, dosyada her derleme için ayrı bir satırda tam derleme adını belirtin. Bu konunun devamında assemblyListFile içerik örneklerine bakın.
Seçenek Açıklama
/cdl İndirme önbelleğinin içeriğini siler.
/F Bir derlemeyi yeniden yüklemeyi zorlamak için bu seçeneği /i veya /il seçenekleriyle belirtin. Eğer genel bütünleştirilmiş kod önbelleğinde aynı ada sahip bir derleme zaten bulunuyorsa, araç onun üzerine yazar.
/h[elp] Araç için komut sözdizimini ve seçenekleri görüntüler.
/iassemblyPath Genel bütünleştirilmiş kod önbelleğine bir derleme yükler.
/ifassemblyPath Genel bütünleştirilmiş kod önbelleğine bir derleme yükler. Eğer genel bütünleştirilmiş kod önbelleğinde aynı ada sahip bir derleme zaten bulunuyorsa, araç onun üzerine yazar.

Bu seçeneği belirtmek , /i ve /f seçeneklerini birlikte belirtmekle eşdeğerdir.
/ilassemblyListFile assemblyListFile içinde belirtilen bir veya daha fazla derlemeyi genel derleme önbelleğine yükler.
/irassemblyPath

Düzeni

id

açıklama
Bir derlemeyi genel bütünleştirilmiş kod önbelleğine yükler ve derlemeyi saymak için bir başvuru ekler. Bu seçenekle assemblyPath, scheme, id ve description parametrelerini belirtmeniz gerekir. Bu parametreler için belirtebileceğiniz geçerli değerlerin açıklaması için /r seçeneğine bakın.

Bu seçeneği belirtmek , /i ve /r seçeneklerini birlikte belirtmekle eşdeğerdir.
/l [assemblyName] Genel bütünleştirilmiş kod önbelleğinin içeriğini listeler. assemblyName parametresini belirtirseniz, araç yalnızca bu adla eşleşen derlemeleri listeler.
/Ldl İndirilen dosyalar önbelleğinin içeriğini listeler.
/lr [assemblyName] Tüm derlemeleri ve karşılık gelen başvuru sayılarını listeler. assemblyName parametresini belirtirseniz, araç yalnızca bu adla eşleşen derlemeleri ve bunlara karşılık gelen başvuru sayılarını listeler.
/nologo Microsoft başlangıç başlığı görüntüsünü bastırır.
/r [assemblyName | assemblyPath]

Düzeni

id

açıklama
Yüklenecek veya kaldırılacak bir derleme veya derlemeler için izlenen bir başvuru belirtir. Bu seçeneği /i, /il, /u veya /ul seçenekleriyle belirtin.

Bir derlemeyi yüklemek için bu seçenekle assemblyPath, scheme, id ve description parametrelerini belirtin. Bir derlemeyi kaldırmak için assemblyName, scheme, id ve description parametrelerini belirtin.

Bir derlemeye başvuruyu kaldırmak için, derleme yüklendiğinde /i ve /r (veya /ir) seçenekleriyle belirtilen aynı düzen, kimlik ve açıklama parametrelerini belirtmeniz gerekir. Eğer bir derlemeyi kaldırıyorsanız, eğer kaldırılacak son başvuruysa ve Windows Installer'ın o derlemeye hiçbir başvurusu yok ise araç derlemeyi genel bütünleştirilmiş kod önbelleğinden de kaldırır.

scheme parametresi, yükleme düzeninin türünü belirtir. Aşağıdaki değerlerden birini belirleyebilirsiniz.

- UNINSTALL_KEY: Yükleyici uygulamayı Microsoft Windows'da Program Ekle/Kaldır'a ekliyorsa bu değeri belirtin. Uygulamalar HKLM\Software\Microsoft\Windows\CurrentVersion içine bir kayıt defteri anahtarı ekleyerek kendilerini Program Ekle/Kaldır'a ekler.
- FILEPATH: Yükleyici uygulamayı Program Ekle/Kaldır'a eklemiyorsa bu değeri belirtin.
- OPAQUE: Bir kayıt defteri anahtarı veya dosya yolu sağlamak yükleme senaryonuz için geçerli değilse bu değeri belirtin. Bu değer , id parametresi için özel bilgiler belirtmenize olanak tanır.

id parametresi için belirtilmesi gereken değer, scheme parametresi için belirtilen değere bağlıdır:

- Scheme parametresi için UNINSTALL_KEY belirtirseniz, HKLM\Software\Microsoft\Windows\CurrentVersion kayıt defteri anahtarında ayarlanan uygulamanın adını belirtin. Örneğin, kayıt defteri anahtarı HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp ise , id parametresi için MyApp değerini belirtin.
- Scheme parametresi için FILEPATH belirtirseniz, derlemeyi id parametresi olarak yükleyen yürütülebilir dosyanın tam yolunu belirtin.
- Scheme parametresi için OPAQUE belirtirseniz , id parametresi olarak herhangi bir veri parçasını sağlayabilirsiniz. Belirttiğiniz veri tırnak işaretleri ("") arasına alınmalıdır.

description parametresi, yüklenecek uygulama hakkında açıklayıcı metin belirtmenize olanak tanır. Bu bilgi başvurular numaralandığında görüntülenir.
/silent Tüm çıktıların görüntülenmesini bastırır.
/uassemblyName Genel bütünleştirilmiş kod önbelleğinden bir derlemeyi kaldırır.
/ufassemblyName Belirtilen bir derlemenin tüm başvurularını kaldırarak derlemeyi kaldırmaya zorlar.

Bu seçeneği belirtmek , /u ve /f seçeneklerini birlikte belirtmekle eşdeğerdir. Not: Microsoft Windows Installer kullanılarak yüklenen bir derlemeyi kaldırmak için bu seçeneği kullanamazsınız. Eğer bu işlemi yapmayı denerseniz, araç bir hata iletisi görüntüler.
/ulassemblyListFile assemblyListFile içinde belirtilen bir veya daha fazla derlemeyi genel derleme önbelleğinden kaldırır.
/u[ngen] assemblyName Belirtilen bir derlemeyi genel bütünleştirilmiş kod önbelleğinden kaldırır. Eğer belirtilen derlemenin varolan başvuru sayısı varsa, araç başvuru sayılarını görüntüler ve derlemeyi genel bütünleştirilmiş kod önbelleğinden kaldırmaz. Not: .NET Framework sürüm 2.0'da /ungen desteklenmez. Bunun yerine ,Ngen.exe (Yerel Görüntü Oluşturucu) komutunu kullanınuninstall.

.NET Framework sürüm 1.0 ve 1.1'de /ungen belirtilmesi, derlemenin yerel görüntü önbelleğinden kaldırılmasına Gacutil.exe neden olur. Bu önbellek, Ngen.exe (Yerel Görüntü Oluşturucu) kullanılarak oluşturulmuş derlemeler için yerel görüntüleri depolar.
/urassemblyName

Düzeni

id

açıklama
Belirtilen bir derleme için genel bütünleştirilmiş kod önbelleğinden bir başvuru kaldırır. Derlemeye başvuruyu kaldırmak için, derleme yüklendiğinde /i ve /r (veya /ir) seçenekleriyle belirtilen aynı düzen, kimlik ve açıklama parametrelerini belirtmeniz gerekir. Bu parametreler için belirtebileceğiniz geçerli değerlerin açıklaması için /r seçeneğine bakın.

Bu seçeneği belirtmek , /u ve /r seçeneklerini birlikte belirtmekle eşdeğerdir.
/? Araç için komut sözdizimini ve seçenekleri görüntüler.

Açıklamalar

Not

Gacutil.exe'yi kullanabilmek için yönetici ayrıcalıklarınız olmalıdır.

Özellikle, Gacutil.exe önbelleğe derlemeler yüklemenize, önbellekten derlemeleri kaldırmanıza ve önbelleğin içeriğini listelemenize olanak sağlar.

Gacutil.exe, Windows Installer tarafından desteklenen başvuru sayma düzenine benzer başvuru saymayı destekleyen seçenekler sağlar. Gacutil.exe'yi kullanarak aynı derlemeyi yükleyen iyi uygulamayı yükleyebilirsiniz: araç o derlemeye olan başvuruların sayısını takip eder. Sonuç olarak, derleme iki uygulama da kaldırılana kadar bilgisayarda kalır. Eğer Gacutil.exe'yi gerçek ürün yüklemelerinde kullanıyorsanız, başvuru saymayı destekleyen seçenekleri kullanın. Derlemeyi yüklemek ve saymak için bir başvuru eklemek için /i ve /r seçeneklerini birlikte kullanın. Derlemenin başvuru sayısını kaldırmak için /u ve /r seçeneklerini birlikte kullanın. /i ve /u seçeneklerinin tek başına kullanılmasının başvuru sayma işlemini desteklemediğini unutmayın. Bu seçenekler uygulama geliştirme süresince kullanılmaya uygundur ancak gerçek ürün yüklemelerinde uygun değildir.

ANSI metin dosyasında depolanan derlemelerin listesini yüklemek veya kaldırmak için /il veya /ul seçeneklerini kullanın. Metin dosyasının içeriği doğru şekilde biçimlendirilmelidir. Derlemeleri yüklemek üzere metin dosyası kullanmak için, dosyada her derleme için ayrı bir satırda yolu belirtin. Aşağıdaki örnek yüklenecek derlemeleri içeren bir dosyanın içeriğini gösterir.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Derlemeleri kaldırmak üzere bir metin dosyası kullanmak için, dosyada her derleme için ayrı bir satırda tam derleme adını belirtin. Aşağıdaki örnek kaldırılacak derlemeleri içeren bir dosyanın içeriğini gösterir.

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

Not

Dosya adı 79 ile 91 karakter arasında (dosya uzantısı hariç) uzun bir derleme yüklemeye çalışmak aşağıdaki hataya neden olabilir:

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

Bunun nedeni dahili olarak Gacutil.exe aşağıdaki öğelerden oluşan en fazla MAX_PATH karakterden oluşan bir yol oluşturmasıdır:

  • GAC Kökü - 34 karakter (örn. C:\Windows\Microsoft.NET\assembly\)
  • Mimari - 7 veya 9 karakter (örn. GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName - Diğer öğelerin boyutuna bağlı olarak 91 karaktere kadar (örn. System.Xml.Linq\)
  • AssemblyInfo - 31 - 48 karakter veya daha fazlası şunlardan oluşur:
    • Çerçeve - 5 karakter (örn. v4.0_)
    • AssemblyVersion - 8 - 24 karakter (örn. 9.0.1000.0_)
    • AssemblyLanguage - 1 - 8 karakter (örn. de_, sr-Cyrl_)
    • PublicKey - 17 karakter (örn. 31bf3856ad364e35\)
  • DllFileName - En fazla 91 + 4 karakter (örn. <AssemblyName>.dll)

Örnekler

Aşağıdaki komut, derlemeyi genel derleme mydll.dll önbelleğine yükler.

gacutil /i mydll.dll

Aşağıdaki komut, derleme için başvuru sayısı olmadığı sürece derlemeyi hello genel derleme önbelleğinden kaldırır.

gacutil /u hello

Önceki komutun, derleme adı tam olarak belirtilmediği için derleme önbelleğinden birden fazla derleme kaldırabileceğine dikkat edin. Örneğin, hem sürüm 1.0.0.0 hem de 3.2.2.1 hello önbellekte yüklüyse, komut gacutil /u hello her iki derlemeyi de kaldırır.

Birden fazla derlemeyi kaldırmayı önlemek için aşağıdaki örneği kullanın. Bu komut yalnızca hello tam olarak belirtilen sürüm numarası, kültür ve ortak anahtarla eşleşen derlemeyi kaldırır.

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

Aşağıdaki komut, dosyasında assemblyList.txt belirtilen derlemeleri genel derleme önbelleğine yükler.

gacutil /il assemblyList.txt

Aşağıdaki komut, dosyasında assemblyList.txt belirtilen derlemeleri genel derleme önbelleğinden kaldırır.

gacutil /ul assemblyList.txt

Aşağıdaki komut genel derleme önbelleğine yüklenir myDll.dll ve bunu saymak için bir başvuru ekler. Derleme myDll.dll , uygulaması MyApptarafından kullanılır. parametresi, UNINSTALL_KEY MyApp Windows'ta Program Ekle/Kaldır'a eklenen MyApp kayıt defteri anahtarını belirtir. Description parametresi olarak My Application Descriptionbelirtilir.

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

Aşağıdaki komut genel derleme önbelleğine yüklenir myDll.dll ve bunu saymak için bir başvuru ekler. scheme parametresi FILEPATH, ve id parametresi, c:\applications\myApp\myApp.exeöğesini yükleyen myDll.dll. uygulamanın yolunu belirtir. Açıklama parametresi olarak MyAppbelirtilir.

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

Aşağıdaki komut genel derleme önbelleğine yüklenir myDll.dll ve bunu saymak için bir başvuru ekler. scheme parametresi, OPAQUEkimlik ve açıklama parametrelerini özelleştirmenize olanak tanır.

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

Aşağıdaki komut, uygulaması myApptarafından başvurusunu myDll.dll kaldırır. Eğer bu, derleme için olan son başvuruysa, derlemeyi ayrıca genel bütünleştirilmiş kod önbelleğinden de kaldırır.

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

Aşağıdaki komut genel bütünleştirilmiş kod önbelleğinin içeriğini listeler.

gacutil /l

Ayrıca bkz.