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.
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.
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:
No Visual Studio, criar um novo projeto do Visual translation from VPE for Csharp Class Library e nomeie o projeto GACDemo .
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:
No Solution Explorer, clique com o botão direito do mouse GACDemo e, em seguida, clique em Propriedades .
Clique na guia Signing e, em seguida, clique para selecionar a caixa de seleção Sign the assembly .
Na lista Escolher uma chave de nome de alta segurança , clique em <New...>.
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 .
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.
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"
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:
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.
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:
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 .
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("")]
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/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.