Arquivo

Posts Tagged ‘.NET Framework 4.0’

Aonde foi parar o Global Assembly Cache no .NET Framework 4?

maio 13, 2010 3 comentários

Uma das primeiras coisas que você pode acabar se perguntando quando começa a trabalhar com o Visual Studio 2010 e o .NET Framework 4.0, é o seguinte “aonde foi parar o assembly que eu acabei de registrar no GAC?”.

Ontem, após muita tentativa-e-erro, acabei descobrindo que o GAC no .NET Framework 4.0 sofreu algumas alterações. Ele foi dividido em dois, um GAC para cada versão do Common Language Runtime (CLR).

A versão do CLR utilizada pelo .NET Framework 2.0 e pelo .NET Framework 3.5 é CLR v2.0. Portanto, os assemblies compilados com as versões 2.0 e 3.5 do .NET Framework ficam no mesmo GAC, localizado na pasta

%systemroot%\asseembly

Já os assemblies compilados com o .NET Framework 4.0 utilizam o CLR v4.0. Sendo assim, ficam no novo GAC, localizado na pasta

%systemroot%\Microsoft.NET\assembly

A primeira coisa que você irá notar é que o GAC do CLR v4.0 não usa a extensão do Windows Shell (shfusion.dll) que permitia visualizar todos os assemblies instalados como uma lista (com nome, versão e public key token). Aparentemente, esta extensão foi descontinuada, veja o segundo comentário neste post do site Microsoft Connect.

A Microsoft decidiu isolar o GAC desta nova versão da CLR para que as aplicações que utilizam o CLR v2.0 não consigam enxergar os assemblies desenvolvidos com o CLR v4.0.

Anúncios