Como instalar uma assemblagem na cache de assemblagem global no Visual C#

Traduções de Artigos Traduções de Artigos
Artigo: 815808 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como gerar um nome seguro para uma assemblagem e como instalar um ficheiro .dll na cache de assemblagem global (GAC). Com a GAC, pode partilhar assemblagens em várias aplicações. GAC é instalada automaticamente com o .NET runtime. Componentes são normalmente armazenados na C:\WINNT\Assembly.

Para instalar uma assemblagem na GAC, tem de atribuir um nome seguro da assemblagem. O nome é uma chave de hash criptográfico ou assinatura. Este nome seguro assegura a versão correcta do componente. Isto ajuda a impedir que os componentes que tenham o mesmo nome de conflitos entre si ou de incorrectamente a ser utilizado por uma morosa aplicação.


Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Direitos de administrador para o computador em que está a ser instalada a assemblagem partilhada

Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Geral familiaridade com assemblagens no. NET.
  • Geral familiaridade com a utilização de ferramentas na linha de comandos.

Cache de assemblagem global

Para criar um pequeno projecto da biblioteca de classes utilizando o Visual Studio, para gerar um nome seguro e para instalar o ficheiro .dll do projecto na GAC, siga estes passos:
  1. No Visual Studio, crie um novo projecto do Visual C# classe biblioteca e o nome do projecto GACDemo .
  2. Tem de utilizar um nome seguro. Para gerar este par de chaves criptográfica, utilize a ferramenta de NS. Esta ferramenta está localizada no subdirectório \bin onde está instalado o .NET Framework Solution Developer Kit (SDK). A ferramenta de NS é fácil de utilizar. A declaração da linha de comandos tem o seguinte
    sn -k "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk"
    Nota No Visual Studio 2005 e nas versões posteriores do Visual Studio, pode utilizar as propriedades do projecto IDE para gerar um par de chaves e assinar a assemblagem. Em seguida, pode ignorar o passo 3 e o passo 4 e também ignorar efectuar quaisquer alterações de código ao ficheiro AssemblyInfo.cs.

    Para utilizar as propriedades do projecto IDE para gerar um par de chaves e assinar a assemblagem, siga estes passos:
    1. No Solution Explorer, clique com o botão direito do rato GACDemo e, em seguida, clique em Propriedades .
    2. Clique no separador assinatura e, em seguida, clique para seleccionar a caixa de verificação Iniciar sessão a assemblagem .
    3. Na lista Escolha uma chave de nome seguro , clique em <New...>.
    4. Tipo GACkey.snk como nome de ficheiro de chave, clique para desmarcar a caixa de verificação proteger o meu ficheiro de chave com uma palavra-passe e, em seguida, clique em OK .
    5. Prima CTRL + SHIFT + B para compilar o projecto.
    Depois de seguir estes passos, ainda tem de seguir o passo 5 para instalar a assemblagem na GAC.
  3. Crie um directório denominado GACKey em C:\ para que possa facilmente localize a chave e aceder à chave na linha de comandos.

    Nota Para a maior parte dos utilizadores, as ferramentas de .NET estão localizadas na pasta Files\Microsoft.NET\FrameworkSDK\Bin. Antes de escrever o seguinte comando NS, poderá copiar este caminho semelhante no computador para o directório de posição .NET. Escreva cd na linha de comandos, clique com o botão direito do rato para colar o caminho e, em seguida, prima ENTER para mudar rapidamente para o directório onde se encontra a ferramenta de NS.

    Escreva o seguinte:
    sn -k "C:\GACKey\GACkey.snk"
  4. É gerada uma chave, mas não é ainda associado a assemblagem do projecto. Para criar esta associação, faça duplo clique no ficheiro AssemblyInfo.cs no Visual Studio .NET Solution Explorer. Este ficheiro tem a lista de atributos de assemblagem que estão incluídos por predefinição quando é criado um projecto no Visual Studio. NET. Modificar AssemblyKeyFile assemblagem atributo no código da seguinte forma:
    [ assemblagem: AssemblyKeyFile("C:\\GACKey\\GACKey.snk") ]
    Compile o projecto, premindo CTRL + SHIFT + B. Não é necessário efectuar qualquer código adicional para instalar um ficheiro .dll na GAC.
  5. Pode instalar o ficheiro .dll utilizando a ferramenta Gacutil ou arrastando o ficheiro .dll para a pasta adequada. Se utilizar o Gacutil ferramenta, pode utilizar um comando semelhante à seguinte:
    Gacutil - I "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Para arrastar o ficheiro, abra duas instâncias do Explorador do Windows. Numa instância, encontrar a localização da saída de ficheiro .dll do projecto de consola. A outra instância, localize c:\[SystemRoot]\Assembly. Em seguida, arraste o ficheiro de .dll para a pasta assemblagem .

Listagem 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("")]

Verificação

  1. Inicie o Explorador do Windows.
  2. Localizar C:\ SystemRoot \ assemblagem.
  3. Verá GACDemo na lista de ficheiros .dll instalado.

Referências

Para mais informações, consulte os seguintes Web sites da Microsoft:
Instalar uma assemblagem na cache de assemblagem global
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Cache de assemblagem global
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx
Ferramenta de cache de assemblagem global
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx

Propriedades

Artigo: 815808 - Última revisão: 13 de maio de 2007 - Revisão: 3.9
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 815808

Submeter comentários

 

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