Comment faire pour installer un assembly dans le Global assembly cache dans Visual C#

Traductions disponibles Traductions disponibles
Numéro d'article: 815808 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment générer un nom fort pour un assembly et comment installer un fichier .dll dans le Global Assembly Cache (GAC). Avec le cache d'assembly global, vous pouvez partager les assemblys entre plusieurs applications. Le cas est automatiquement installé avec le runtime .NET. Composants sont généralement conservés dans C:\WINNT\Assembly.

Pour installer un assembly dans le cas, vous devez attribuer un nom fort de l'assembly. Le nom est un hachage cryptographique-clé ou une signature. Ce nom fort garantit la version correcte du composant. Ceci empêche de composants qui ont le même nom à partir d'en conflit les uns avec les autres ou de mal utilisé par une application beaucoup.


Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs sont requis :
  • Droits d'administrateur sur l'ordinateur où l'assembly partagé est installé

Cet article suppose que vous êtes familiarisé avec les sujets suivants :
  • Maîtrise générale assemblys .NET.
  • Maîtrise générale des outils à l'invite de commandes.

Global assembly cache

Pour créer un petit projet de bibliothèque de classes à l'aide Visual Studio, pour générer un nom fort et installer le fichier .dll du projet dans le GAC, procédez comme suit :
  1. Dans Visual Studio, créer un nouveau projet de bibliothèque de classes Visual C# et nommez le projet GACDemo .
  2. Vous devez utiliser un nom fort. Pour générer cette paire de clés cryptographique, utilisez l'outil n° de série. Cet outil se trouve dans le sous-répertoire \bin dans lequel le Kit de développement solution (SDK) Framework .NET est installé. L'outil de n° de série est facile à utiliser. L'instruction de ligne de commande prend suivantes
    SN-k « [DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk »
    note Dans Visual Studio 2005 et dans les versions ultérieures de Visual Studio, vous pouvez utiliser les propriétés du projet IDE pour générer une paire de clés et de signer votre assembly. Ensuite, vous pouvez ignorer l'étape 3 et l'étape 4 et également ignorer apporté des modifications de code au fichier AssemblyInfo.cs.

    Pour utiliser les propriétés du projet IDE pour générer une paire de clés et de signer votre assembly, procédez comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur GACDemo , puis cliquez sur Propriétés .
    2. Cliquez sur l'onglet signature , puis cliquez sur Activer la case à cocher Signer l'assembly .
    3. Dans la liste Choisir une clé de nom fort , cliquez sur <New...>.
    4. Type GACkey.snk comme nom de fichier clé, désactivez la case à cocher Protéger mon fichier de clé avec un mot de passe , puis cliquez sur OK .
    5. Appuyez sur CTRL + MAJ + B pour compiler le projet.
    Après avoir suivi ces étapes, vous devez encore suivre l'étape 5 pour installer votre assembly dans le cas.
  3. Créez un répertoire nommé GACKey dans C:\ afin que vous pouvez facilement recherchez la clé et accéder à la clé à l'invite de commandes.

    note Pour la plupart des utilisateurs, les outils .NET sont situés dans C:\Program Files\Microsoft.NET\FrameworkSDK\Bin. Avant de taper la commande suivante n° de série, vous préférerez copier ce chemin similaire sur votre ordinateur dans le répertoire emplacement .NET. Tapez cd à l'invite de commandes, cliquez avec le bouton droit pour coller le chemin d'accès et puis appuyez sur ENTRÉE pour changer rapidement dans le répertoire où se trouve l'outil de n° de série.

    Tapez la commande suivante :
    SN-k « C:\GACKey\GACkey.snk »
  4. Une clé est générée, mais il n'est pas encore associé à l'assembly du projet. Pour créer cette association, double-cliquez sur le fichier AssemblyInfo.cs dans Explorateur de solutions de Visual Studio .NET. Ce fichier est la liste des attributs d'assembly qui sont inclus par défaut lorsqu'un projet est créé dans Visual Studio .NET. Modifier le AssemblyKeyFile attribut d'assembly dans le code comme suit :
    [ assembly : AssemblyKeyFile("C:\\GACKey\\GACKey.snk") ]
    Compilez le projet en cliquant sur CTRL + MAJ + B. Vous devez avoir n'importe quel code supplémentaire pour installer un fichier .dll dans le GAC.
  5. Vous pouvez installer le fichier .dll à l'aide de l'outil Gacutil ou en faisant glisser le fichier .dll dans le dossier approprié. Si vous utilisez le gacutil outil, vous pouvez utiliser une commande semblable au suivant :
    gacutil - je « [DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll »
    Pour faire glisser le fichier, ouvrez deux instances de l'Explorateur Windows. Dans une instance, recherchez l'emplacement de la sortie de fichier .dll pour votre projet console. Dans l'instance, recherchez c:\[SystemRoot]\Assembly. Ensuite, faites glisser le fichier .dll vers le dossier Transactions d'assemblage .

Terminer le code liste (AssemblyInfo.cs)

using System.Reflection;
using System.Runtime.CompilerServices;

//
// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// that is associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

//
// Version information for an assembly is made up of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values, or you can default the revision and build numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

//
// To sign your assembly you must specify a key to use. See the 
// Microsoft .NET Framework documentation for more information about assembly signing.
//
// Use the following attributes to control that key is used for signing. 
//
// Notes: 
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your computer. KeyFile refers to a file that contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the 
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
//           in the KeyFile is installed to the CSP and used.
//   (*) To create a KeyFile, you can use the sn.exe (Strong Name) utility.
//       When specifying the KeyFile, the location of the KeyFile must be
//       relative to the project output directory which is
//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile 
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information about this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
[assembly: AssemblyKeyName("")]

Vérification

  1. Démarrez l'Explorateur Windows.
  2. Recherchez C:\ SystemRoot \ assembly.
  3. Vous voyez GACDemo dans la liste des fichiers .dll installée.

Références

Pour plus d'informations, reportez-vous aux sites Web suivants Microsoft adresses :
L'installation d'un assembly dans le Global assembly cache
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Global assembly cache
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx
Global assembly cache outil
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx

Propriétés

Numéro d'article: 815808 - Dernière mise à jour: dimanche 13 mai 2007 - Version: 3.9
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Mots-clés : 
kbmt kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 815808
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com