Почему библиотеки DLL .NET Framework 4.0 не добавлены в GAC?

Я заметил кое-что странное в расположении .NET DLL. Я пытался отладить проблему с System.ServiceModel.dll и заметил, что, несмотря на то, что у меня установлен .NET 4.0, в моем GAC установлена ​​только версия 3.0 DLL ServiceModel (я проверил, перейдя в C:\Windows \сборка). Однако, если я перейду к «C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client», версия 4.0 находится прямо там. Так почему же .NET не устанавливает версии 4.0 в GAC?

А учитывая, что это не так, как мои программы 4.0 узнают, где найти DLL 4.0? Путь к файлу, который я указал выше, проверяется автоматически? Я оглянулся на свое приложение, которое использует 4.0, чтобы подтвердить, что он НЕ копирует DLL локально, поэтому кажется, что он должен получать ее либо из GAC (и теперь я знаю, что DLL там нет), либо из папки .NETFramework. Это меня очень смутило...

Изменить: я последовал совету MystereMan и запустил "Gacutil.exe /l System.ServiceModel", но он по-прежнему показывает только версию 3.0. Означает ли это, что .NET 4 в конце концов НЕ устанавливал библиотеки DLL в GAC?

Правка №2 и решение: gacutil.exe в моем PATH — это более старая версия, которая не видит сборки 4.0. При поиске на своем компьютере я нашел версию 4.0 gacutil.exe здесь: C:\Program Files\Microsoft SDK\Windows\v7.0A\bin\NETFX 4.0 Tools. Используя это, я, наконец, смог увидеть в списке 4.0 System.ServiceModel.dll. Спасибо всем за помощь!

Спасибо,

-Роберт

6
задан JoeCool 5 June 2012 в 15:33
поделиться