Cómo instalar a un ensamblado en la caché de ensamblados global en Visual C#

Seleccione idioma Seleccione idioma
Id. de artículo: 815808 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo generar un nombre seguro para un ensamblado y cómo instalar un archivo .dll en la caché de ensamblados global (GAC). Con la GAC, puede compartir los ensamblados en muchas aplicaciones. La GAC se instala automáticamente con el motor de tiempo de ejecución de .NET. Los componentes normalmente se almacenan en C:\WINNT\Assembly.

Para instalar a un ensamblado en la GAC, debe darle al ensamblado un nombre seguro. El nombre es un hash de clave de cifrado o firma. Este nombre seguro garantiza que las versiones de componentes correcta. Esto ayuda a evitar que los componentes que tienen el mismo nombre entren en conflicto entre sí, o desde incorrectamente que se utiliza una aplicación mucho.


Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Derechos de administrador en el equipo donde se está instalando el ensamblado compartido

En este artículo se supone que está familiarizado con los temas siguientes:
  • Estar familiarizado con los ensamblados de .NET.
  • Estar familiarizado con el uso de herramientas en el símbolo del sistema.

Caché de ensamblados global

Para crear un pequeño proyecto de biblioteca de clases mediante Visual Studio, para generar un nombre seguro y para instalar el archivo .dll del proyecto en la GAC, siga estos pasos:
  1. En Visual Studio, cree un nuevo proyecto de biblioteca de clases de Visual C# y denomine al proyecto GACDemo .
  2. Debe utilizar un nombre seguro. Para generar este par de claves criptográficas, utilice la herramienta SN. Esta herramienta se encuentra en el subdirectorio \bin donde está instalado Solution Developer Kit (SDK) de .NET Framework. La herramienta SN es fácil de usar. La instrucción de la línea de comandos toma los siguientes
    sn -k "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk"
    Nota En Visual Studio 2005 y en versiones posteriores de Visual Studio, puede utilizar las propiedades del proyecto IDE para generar un par de claves y firmar el ensamblado. A continuación, puede omitir los pasos 3 y 4 y también omitir realizar cambios de código en el archivo AssemblyInfo.cs.

    Utilizar las propiedades del proyecto IDE para generar un par de claves y firmar el ensamblado, siga estos pasos:
    1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en GACDemo y a continuación, haga clic en Propiedades .
    2. Haga clic en la ficha firma y, a continuación, active la casilla de verificación firmar el ensamblado .
    3. En la lista Elija una clave de nombre seguro , haga clic en <New...>.
    4. Tipo GACkey.snk como nombre de archivo de clave, desactive la casilla de verificación Proteger mi archivo de clave con una contraseña y, a continuación, haga clic en Aceptar .
    5. Presione CTRL + MAYÚS + B para compilar el proyecto.
    Después de seguir estos pasos, todavía debe seguir el paso 5 para instalar al ensamblado en la GAC.
  3. Cree un directorio denominado GACKey en C:\ por lo que puede fácilmente busque la clave y tener acceso a la clave en el símbolo del sistema.

    Nota Para la mayoría de los usuarios, las herramientas de .NET se encuentran en c:\Archivos Files\Microsoft.NET\FrameworkSDK\Bin. Antes de escribir el siguiente comando SN, desea copiar esta ruta de acceso similar en el equipo en el directorio bin de .NET. Escriba cd en el símbolo del sistema, haga clic con el botón secundario para pegar la ruta de acceso y, a continuación, presione ENTRAR para cambiar rápidamente al directorio donde se encuentra la herramienta SN.

    Escriba lo siguiente:
    sn -k "C:\GACKey\GACkey.snk"
  4. Se genera una clave, pero todavía no está asociado con el ensamblado del proyecto. Para crear esta asociación, haga doble clic en el archivo de AssemblyInfo.cs en el Explorador de soluciones de Visual Studio. NET. Este archivo tiene la lista de atributos de ensamblado que se incluyen de forma predeterminada cuando se crea un proyecto en Visual Studio. NET. Modificar el AssemblyKeyFile atributo de ensamblado en el código como sigue:
    [ ensamblado: AssemblyKeyFile("C:\\GACKey\\GACKey.snk") ]
    Compilar el proyecto haciendo clic en CTRL + MAYÚS + B. No es necesario para que cualquier código adicional para instalar un archivo .dll en la GAC.
  5. Puede instalar el archivo .dll mediante la herramienta Gacutil o arrastrando el archivo .dll a la carpeta apropiada. Si utiliza el Gacutil herramienta, puede utilizar un comando similar al siguiente:
    gacutil - I "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Para arrastrar el archivo, abrir dos instancia del explorador de Windows. En una instancia, busque la ubicación de salida de archivo .dll para el proyecto de consola. En la instancia busque c:\[SystemRoot]\Assembly. Luego, arrastre el archivo .dll a la carpeta del ensamblado .

Listado de código completo (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("")]

Comprobación

  1. Inicie el Explorador de Windows.
  2. Busque C:\ SystemRoot \ ensamblado.
  3. Vea GACDemo en la lista de archivos .dll instalados.

Referencias

Para obtener más información, visite los siguientes sitios Web de Microsoft:
Instalar a un ensamblado en la caché de ensamblados global
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Caché de ensamblados global
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx
Herramienta caché de ensamblados global
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx

Propiedades

Id. de artículo: 815808 - Última revisión: domingo, 13 de mayo de 2007 - Versión: 3.9
La información de este artículo se refiere a:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palabras clave: 
kbmt kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 815808

Enviar comentarios

 

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