ID do artigo: 815808 - Última revisão: domingo, 13 de maio de 2007 - Revisão: 3.9

Como instalar um assembly no global assembly cache na translation from VPE for Csharp Visual

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo descreve como gerar um nome forte para um assembly e como instalar um arquivo .dll no GAC (cache de assembly global). Com o GAC, você pode compartilhar assemblies em muitos aplicativos. O GAC é instalado automaticamente com o .NET runtime. Componentes normalmente são armazenados em C:\WINNT\Assembly.

Para instalar um assembly no GAC, você deve dar um nome forte do assembly. O nome é um hash-chave de criptografia ou assinatura. Esse nome de alta segurança garante a versão correta do componente. Isso ajuda a evitar componentes que têm o mesmo nome entrem em conflito uns com os outros ou incorretamente sendo usado por um aplicativo de consumo.


Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Direitos de administrador para o computador onde o assembly compartilhado está sendo instalado

Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Geral familiaridade com assemblies no. NET.
  • Geral familiaridade com o uso de ferramentas no prompt de comando.

Cache global de assemblies

Para criar um pequeno projeto Class Library usando o Visual Studio, para gerar um nome forte e para instalar o arquivo .dll do projeto no GAC, siga estas etapas:
  1. No Visual Studio, criar um novo projeto do Visual translation from VPE for Csharp Class Library e nomeie o projeto GACDemo .
  2. Você deve usar um nome forte. Para gerar esse par de chaves criptográfica, use a ferramenta SN. Essa ferramenta está localizada no subdiretório \bin onde o Solution Developer Kit (SDK) do .NET Framework está instalado. A ferramenta SN é fácil de usar. A instrução de linha de comando tem o seguinte
    "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk" sn -k
    Observação No Visual Studio 2005 e em versões posteriores do Visual Studio, você pode usar as propriedades de projeto do IDE para gerar um par de chaves e assinar seu assembly. Em seguida, você pode ignore as etapas 3 e 4 e também ignorar fazer quaisquer alterações de código no arquivo AssemblyInfo.cs.

    Para usar as propriedades de projeto do IDE para gerar um par de chaves e assinar seu assembly, execute essas etapas:
    1. No Solution Explorer, clique com o botão direito do mouse GACDemo e, em seguida, clique em Propriedades .
    2. Clique na guia Signing e, em seguida, clique para selecionar a caixa de seleção Sign the assembly .
    3. Na lista Escolher uma chave de nome de alta segurança , clique em <New...>.
    4. Tipo GACkey.snk como o nome do arquivo de chave, clique para desmarcar a caixa de seleção proteger meu arquivo de chave com uma senha e, em seguida, clique em OK .
    5. Pressione CTRL + SHIFT + B para compilar o projeto.
    Após seguir essas etapas, você deve seguir a etapa 5 para instalar o assembly no GAC.
  3. Crie um diretório chamado GACKey em C:\ para que você possa facilmente localizar a chave e acessar a chave no prompt de comando.

    Observação Para a maioria dos usuários, as ferramentas do .NET estão localizadas em C:\Program Files\Microsoft.NET\FrameworkSDK\Bin. Antes de digitar o seguinte comando SN, talvez você deseja copiar este caminho semelhante no seu computador para o diretório bin .NET. Digite cd no prompt de comando, clique com o botão direito do mouse para colar o caminho e, em seguida, pressione ENTER para mudar rapidamente para o diretório onde a ferramenta SN está localizada.

    Digite o seguinte:
    sn -k "C:\GACKey\GACkey.snk"
  4. Uma chave é gerada, mas ainda não é associada com o assembly do projeto. Para criar essa associação, clique duas vezes no Solution Explorer do Visual Studio .NET arquivo AssemblyInfo.cs. Este arquivo tem a lista de atributos do assembly que são incluídos por padrão quando um projeto é criado no Visual Studio. NET. Modificar AssemblyKeyFile assembly atributo no código da seguinte maneira:
    [ assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk") ]
    Compile o projeto, clicando em CTRL + SHIFT + B. Não é necessário para que qualquer código adicional para instalar um arquivo .dll no GAC.
  5. Você pode instalar o arquivo .dll usando a ferramenta Gacutil ou arrastando o arquivo .dll para a pasta apropriada. Se você usar o Gacutil ferramenta, você pode usar um comando semelhante à seguinte:
    gacutil-, "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Para arrastar o arquivo, abra duas instâncias do Windows Explorer. Em uma instância, encontrar o local da saída de arquivo .dll para seu projeto de console. Outro exemplo, localize c:\[SystemRoot]\Assembly. Em seguida, arraste o arquivo .dll para a pasta assembly .

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 Windows Explorer.
  2. Localizar C:\ SystemRoot \ assembly.
  3. Você verá GACDemo na lista de arquivos .dll instalados.

Referências

Para obter mais informações, consulte os seguintes sites:
Instalar um assembly no cache global de assemblies
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx)
Cache global de assemblies
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx)
Global assembly Cache Tool
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx)

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áticaTraduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 815808  (http://support.microsoft.com/kb/815808/en-us/ )