Compartilhando dlls entre várias aplicações usando o GAC
Reusar código é uma boa idéia, então provavelmente seria uma boa idéia reaproveitar códigos em uma dll que forneça serviços por exemplo.Normalmente nós desenvolvedores reusamos uma dll construida com funções básicas. Desde .net 1.1 é possível compartilhar dlls entre aplicações usando o global cache assembly. Este espaço existe em qualquer maquina com o framework instalado, para começar a usar é necessário que o assembly a ser registrado possua um “Nome forte” que entre outras coisas é responsável por identificar de maneira única o assembly.
Criando um nome forte para o assembly
Após a configuração veja que foi gerado um arquivo com extensão .snk
Adicionar assembly na aba referêncy do Visual Studio
Após esta configuração temos um assembly com o nome forte, agora falta registrar o mesmo no GAC.Antes de registrar vamos mover o assembly para a pasta:
%Program Files%\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies
Com o assembly nesta pasta o visual studio reconhece nossa dll como uma dll do .NET, assim fica mais facil adicionar referências.
Registrando o assembly
Para registrar o assembly vamos usar o utilitário gacutil. o comando é gacutil /i nomedoassembly.dll
Agora já é possível criar aplicativos que possuem como referência um assembly registrado no GAC. Para adicionar a referência basta procurar na aba .NET do visual studio.
E quando eu alterar o assembly adicionado no GAC?
Quando um assembly do GAC for alterado será necessário registrar novamente o mesmo e reiniciar o visual studio para que ele atualize a sua referência de desenvolvimento. Como no projeto que surgiu a necessidade de usar o GAC estamos constantemente editando o projeto adicionado nós criamos um script para execução no Build Events do projeto. Se alguem precisar so script pode comentar aqui que eu explico como funciona.
