[RESOLVIDO] - Global Assembly Cache

8 respostas
W

Ola pessoal,

Talvez alguem ja tenha passado pelo meno problema, sei que tem bastante desenvolvedor .NET aqui. :slight_smile:

Bem, estou tentando atualizar uma DLL no Global Assembly Cache. A unica coisa que eu to fazendo eh simplesmente arrastar a dll pro diretorio %windir%/assembly mas eu sempre pego o erro “permission denied”

Olhei as permissoes usando o comando : cacls %windir%/assembly e aparentemente logado como Administrator eu teria full access mas mesmo assim eu nao consigo atualizar o GAC

Alguem ja passou por problem parecido?

//Daniel

8 Respostas

T

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.dotnet.framework&tid=443ec2ac-01ce-467e-b24c-040eec89e5bf&cat=&lang=en&cr=US&sloc=&p=1

W

So pra dar um update.
A solucao foi que eu precisei executar o gacutil.exe pra atualizar o global assembly cache.
Pra isso eh so rodar o Visual Studio 2008 command prompt como administrador (poderia ser com o command prompt normal mas o VS2008 cmd prompt ja tem os paths corretos) e executar o comando :

gacutil /i

//Daniel

B

Tem hora que o GAC enche o saco… );

W

Tem hora? O GAC eh um saco hehehehe

T

Mal comparando, o GAC é mais ou menos como o c:\windows\system32 .
Se você puder, evite pôr coisas no GAC; atualizar qualquer coisa nele pode ter conseqüências desastrosas - lembram-se do DLL Hell (que ocorria porque você registrava uma nova versão de uma DLL)? O GAC é o DLL Hell, Continued.

L

O GAC é a última coisa que você quer usar - é a mesma coisa que colocar jar dentro da instalação do JRE.

B

No GAC, se bem feito, dá pra ter a mesma dll com versões diferentes… problema é que poucas pessoas atualizam a versão da dll antes de colocar lá… ai fode tudo… rsrsrs

W

Eu pessoalmente nao gosto de ter minhas libs em locais globais.

Quando trabalhava com java, todo os projetos que eu trabalhei tinham o seu proprio lib folder com todas as libs + suas dependencias e sempre “setavamos” o classpath atraves de ant scripts isso dava um total controle de todas as dependencias do nosso projeto.
Pouco tempo atras comecei a usavar o maven pra manter o controle das dependencias de um projeto pessoal meu que eu estou fazendo em Java o que torna isso muito mais facil.

Aqui na empresa nos temos varios produtos e o projeto que eu trabalho eh relativamente novo e nos nao temos nada no GAC todas as dependencias estao nos diretorios do nosso projeto, mas agora nos tiver que usar um DLL de um outro projeto que quando instalado copia os assemblies para o GAC.

Ai eu zezao em tudo relacionado com Microsoft, copiei esse DLL especifico pro meu dir de dependencias, adicionei a referencia dentro do projeto e dentro do Visual Studio estava funcionando belezinha mas quando eu estava rodando o aplicativo usava o DLL do GAC, ai nao encontrava alguns metodos porque a versao do GAC era bem desatualizada.

O problema eh que NEM passou pela minha cabeca que isso poderia estar em algum local global porque eu NUNCA fiz e nem senti necessidade de fazer isso, ai gastei um bom tempo tentando descobrir o problema.

Vivendo e aprendendo =)

//Daniel (que tem saudades do java)

Criado 10 de outubro de 2008
Ultima resposta 16 de out. de 2008
Respostas 8
Participantes 4