Gacutil.exe (outil Global Assembly Cache)

L'outil Global Assembly Cache vous permet d'afficher et de manipuler le contenu du Global Assembly Cache et du cache de téléchargement.

Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur Visual Studio ou PowerShell pour développeurs Visual Studio.

À l'invite de commandes, tapez :

Syntaxe

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

Paramètres

Argument Description
assemblyName Nom d'un assembly. Vous pouvez indiquer un nom d'assembly partiellement spécifié, tel que myAssembly ou un nom d'assembly complètement spécifié, tel que myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.
assemblyPath Nom d'un fichier comportant un manifeste d'assembly.
assemblyListFile Chemin d’accès à un fichier texte ANSI qui répertorie des assemblys à installer ou à désinstaller. Pour utiliser un fichier texte afin d’installer des assemblys, spécifiez le chemin d’accès de chaque assembly sur une ligne distincte dans le fichier. L’outil interprète des chemins relatifs à l’emplacement de assemblyListFile. Pour utiliser un fichier texte afin de désinstaller des assemblys, indiquez le nom qualifié complet de chaque assembly sur une ligne distincte dans le fichier. Consultez les exemples de contenu de assemblyListFile plus loin dans cette rubrique.
Option Description
/cdl Supprime le contenu du cache de téléchargement.
/f Spécifiez cette option avec les options /i ou /il pour forcer la réinstallation d’un assembly. Si un assembly portant le même nom existe déjà dans le Global Assembly Cache, l'outil le remplace.
/h[elp] Affiche la syntaxe et les options de commande de l'outil.
/iassemblyPath Installe un assembly dans le Global Assembly Cache.
/ifassemblyPath Installe un assembly dans le Global Assembly Cache. Si un assembly portant le même nom existe déjà dans le Global Assembly Cache, l'outil le remplace.

La spécification de cette option revient à spécifier les options /i et /f ensemble.
/ilassemblyListFile Installe un ou plusieurs assemblys spécifiés dans assemblyListFile dans le Global Assembly Cache.
/irassemblyPath

scheme

id

description
Installe un assembly dans le Global Assembly Cache et ajoute une référence pour compter l'assembly. Vous devez spécifier les paramètres assemblyPath, scheme, id et description avec cette option. Pour obtenir une description des valeurs valides que vous pouvez spécifier pour ces paramètres, consultez l’option /r.

La spécification de cette option revient à spécifier les options /i et /r ensemble.
/l [assemblyName] Affiche le contenu du Global Assembly Cache. Si vous spécifiez le paramètre assemblyName, l’outil ne répertorie que les assemblys correspondant à ce nom.
/ldl Répertorie le contenu du cache de fichiers téléchargés.
/lr [assemblyName] Répertorie tous les assemblys et leurs décomptes de références correspondants. Si vous spécifiez le paramètre assemblyName, l’outil ne répertorie que les assemblys correspondant à ce nom et leurs décomptes de références correspondants.
/nologo Supprime l'affichage de la bannière de démarrage Microsoft.
/r [assemblyName | assemblyPath]

scheme

id

description
Spécifie une référence avec trace à un assembly ou des assemblys à installer ou à désinstaller. Spécifiez cette option avec les options /i, /il, /u ou /ul.

Pour installer un assembly, spécifiez les paramètres assemblyPath, scheme, id et description avec cette option. Pour désinstaller un assembly, spécifiez les paramètres assemblyName, scheme, id et description.

Pour supprimer une référence à un assembly, vous devez spécifier les mêmes paramètres scheme, id et description que ceux spécifiés avec les options /i et /r (ou /ir) lors de l’installation de l’assembly. Si vous désinstallez un assembly, l'outil supprime également l'assembly du Global Assembly Cache s'il s'agit de la dernière référence à supprimer et si Windows Installer ne possède aucune référence en suspens à l'assembly.

Le paramètre scheme spécifie le type de schéma d’installation. Vous pouvez spécifier l'une des valeurs suivantes :

- UNINSTALL_KEY : spécifiez cette valeur si le programme d’installation ajoute l’application à Ajout/Suppression de programmes dans Microsoft Windows. Les applications s'ajoutent elles-mêmes à Ajout/Suppression de programmes en ajoutant une clé de Registre à HKLM\Software\Microsoft\Windows\CurrentVersion.
- FILEPATH : spécifiez cette valeur si le programme d’installation n’ajoute pas l’application à Ajout/Suppression de programmes.
- OPAQUE : spécifiez cette valeur si l’indication d’une clé de Registre ou d’un chemin de fichier ne s’applique pas à votre scénario d’installation. Cette valeur vous permet de spécifier des informations personnalisées pour le paramètre id.

La valeur à spécifier pour le paramètre id dépend de la valeur spécifiée pour le paramètre scheme :

- Si vous spécifiez UNINSTALL_KEY pour le paramètre scheme, spécifiez le nom de l’application défini dans la clé de Registre HKLM\Software\Microsoft\Windows\CurrentVersion. Par exemple, si la clé de Registre est HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, spécifiez MyApp pour le paramètre id.
- Si vous spécifiez FILEPATH pour le paramètre scheme, spécifiez le chemin complet du fichier exécutable qui installe l’assembly en tant que paramètre id.
- Si vous spécifiez OPAQUE pour le paramètre scheme, vous pouvez fournir n’importe quelles données en tant que paramètre id. Les données que vous spécifiez doivent être mises entre guillemets ("").

Le paramètre description vous permet de spécifier un texte descriptif concernant l’application à installer. Ces informations sont affichées lorsque des références sont énumérées.
/silent Supprime l'affichage de toutes les sorties.
/uassemblyName Désinstalle un assembly du Global Assembly Cache.
/ufassemblyName Force la désinstallation d'un assembly spécifié en supprimant toutes les références à cet assembly.

La spécification de cette option revient à spécifier les options /u et /f ensemble. Remarque : Vous ne pouvez pas utiliser cette option pour supprimer un assembly installé à l’aide de Microsoft Windows Installer. Si vous tentez cette opération, l'outil affiche un message d'erreur.
/ulassemblyListFile Désinstalle un ou plusieurs assemblys spécifiés dans assemblyListFile du Global Assembly Cache.
/u[ngen] assemblyName Désinstalle un assembly spécifié du Global Assembly Cache. S'il existe des décomptes de références pour l'assembly spécifié, l'outil les affiche et ne supprime pas l'assembly du Global Assembly Cache. Remarque : Dans .NET Framework version 2.0, /ungen n’est pas pris en charge. Utilisez plutôt la commande uninstall de Ngen.exe (Native Image Generator).

Dans le .NET Framework versions 1.0 et 1.1, la spécification de /ungen conduit Gacutil.exe à supprimer l’assembly du cache des images natives. Ce cache stocke les images natives pour les assemblys qui ont été créés à l’aide de Ngen.exe (Native Image Generator).
/urassemblyName

scheme

id

description
Désinstalle une référence à un assembly spécifié du Global Assembly Cache. Pour supprimer une référence à un assembly, vous devez spécifier les mêmes paramètres scheme, id et description que ceux spécifiés avec les options /i et /r (ou /ir) lors de l’installation de l’assembly. Pour obtenir une description des valeurs valides que vous pouvez spécifier pour ces paramètres, consultez l’option /r.

La spécification de cette option revient à spécifier les options /u et /r ensemble.
/? Affiche la syntaxe et les options de commande de l'outil.

Notes

Notes

Vous devez disposer des droits d'administrateur pour utiliser Gacutil.exe.

Gacutil.exe vous permet plus particulièrement d'installer des assemblys dans le cache, d'en supprimer du cache et de répertorier le contenu du cache.

Gacutil.exe fournit des options qui prennent en charge le décompte de références similaire au modèle de décompte de références pris en charge par Windows Installer. Vous pouvez utiliser Gacutil.exe pour installer deux applications qui installent le même assembly ; l'outil garde la trace du nombre de références à l'assembly. L'assembly reste donc sur l'ordinateur jusqu'à ce que les deux applications soient désinstallées. Si vous utilisez Gacutil.exe pour des installations de produits, utilisez les options qui prennent en charge le décompte de références. Utilisez les options /i et /r ensemble pour installer un assembly et ajouter une référence pour le décompter. Utilisez les options /u et /r ensemble pour supprimer un décompte de références pour un assembly. Notez que l’utilisation des options /i et /u seules ne prend pas en charge le décompte de références. Ces options conviennent à une utilisation pendant le développement d'un produit, mais pas pour des installations de produits.

Utilisez les options /il ou /ul pour installer ou désinstaller une liste d’assemblys stockés dans un fichier texte ANSI. Le contenu du fichier texte doit être correctement mis en forme. Pour utiliser un fichier texte afin d’installer des assemblys, spécifiez le chemin d’accès de chaque assembly sur une ligne distincte dans le fichier. L'exemple suivant illustre le contenu d'un fichier contenant des assemblys à installer.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Pour utiliser un fichier texte afin de désinstaller des assemblys, indiquez le nom qualifié complet de chaque assembly sur une ligne distincte dans le fichier. L'exemple suivant illustre le contenu d'un fichier contenant des assemblys à désinstaller.

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

Notes

Si vous tentez d’installer un assembly dont le nom de fichier dépasse les 79-91 caractères (sans compter l’extension du fichier), vous risquez de rencontrer l’erreur suivante :

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

En effet, Gacutil.exe construit en interne un chemin d’accès pouvant atteindre MAX_PATH caractères et composé des éléments suivants :

  • GAC Root – 34 caractères (p. ex., C:\Windows\Microsoft.NET\assembly\)
  • Architecture – 7 ou 9 caractères (p. ex., GAC_32\, GAC_64\, GAC_MSIL)
  • AssemblyName – jusqu’à 91 caractères, selon la taille des autres éléments (par exemple, System.Xml.Linq\)
  • AssemblyInfo – 31 à 48 caractères ou plus, composés de :
    • Framework – 5 caractères (par exemple, v4.0_)
    • AssemblyVersion – 8 à 24 caractères (par exemple, 9.0.1000.0_)
    • AssemblyLanguage – 1 à 8 caractères (par exemple, de_, sr-Cyrl_)
    • PublicKey – 17 caractères (par exemple, 31bf3856ad364e35\)
  • DllFileName – jusqu'à 91 + 4 caractères (p. ex., <AssemblyName>.dll)

Exemples

La commande suivante installe l'assembly mydll.dll dans le Global Assembly Cache.

gacutil /i mydll.dll

La commande suivante supprime l'assembly hello du Global Assembly Cache si aucun décompte de références n'existe pour l'assembly.

gacutil /u hello

Notez que la commande précédente peut supprimer plusieurs assemblys du cache de l'assembly, car le nom de l'assembly n'est pas complètement spécifié. Par exemple, si les versions 1.0.0.0 et 3.2.2.1 de hello sont installées dans le cache, la commande gacutil /u hello supprime alors ces deux assemblys.

Suivez l'exemple suivant pour éviter de supprimer plusieurs assemblys. Cette commande supprime uniquement l'assembly hello correspondant au numéro de version, à la culture et à la clé publique intégralement spécifiés.

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

La commande suivante installe les assemblys spécifiés dans le fichier assemblyList.txt du Global Assembly Cache.

gacutil /il assemblyList.txt

La commande suivante supprime les assemblys spécifiés dans le fichier assemblyList.txt du Global Assembly Cache.

gacutil /ul assemblyList.txt

La commande suivante installe myDll.dll dans le Global Assembly Cache et ajoute une référence pour le décompter. L'assembly myDll.dll est utilisé par l'application MyApp. Le paramètre UNINSTALL_KEY MyApp spécifie la clé de Registre qui ajoute MyApp à Ajout/Suppression de programmes dans Windows. Le paramètre description est spécifié en tant que My Application Description.

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

La commande suivante installe myDll.dll dans le Global Assembly Cache et ajoute une référence pour le décompter. Le paramètre scheme, FILEPATH, et le paramètre id, c:\applications\myApp\myApp.exe, spécifient le chemin de l’application qui installe myDll.dll.. Le paramètre description est spécifié en tant que MyApp.

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

La commande suivante installe myDll.dll dans le Global Assembly Cache et ajoute une référence pour le décompter. Le paramètre scheme, OPAQUE, vous permet de personnaliser les paramètres id et description.

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

La commande suivante supprime la référence à myDll.dll par l'application myApp. S'il s'agit de la dernière référence à l'assembly, elle supprime également l'assembly du Global Assembly Cache.

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

La commande suivante répertorie le contenu du Global Assembly Cache.

gacutil /l

Voir aussi