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 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.
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:
No Visual Studio, crie um novo projecto do Visual C# classe biblioteca e o nome do projecto GACDemo .
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:
No Solution Explorer, clique com o botão direito do rato GACDemo e, em seguida, clique em Propriedades .
Clique no separador assinatura e, em seguida, clique para seleccionar a caixa de verificação Iniciar sessão a assemblagem .
Na lista Escolha uma chave de nome seguro , clique em <New...>.
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 .
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.
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"
É 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:
Compile o projecto, premindo CTRL + SHIFT + B. Não é necessário efectuar qualquer código adicional para instalar um ficheiro .dll na GAC.
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 .
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 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
(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
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.