Поиск

Просмотр кэша

Взглянем на кэш, чтобы увидеть установленные в данный момент совместно используемые сборки. Из Microsoft Explorer откройте папку c:\winnt\ assembly. Для просмотра информации о сборках .NET представляет утилиту Assembly Cache Viewer (shfusion.dll). Она позволяет просматривать такую информацию о сборке, как номер версии, маркер открытого ключа и даже была ли сборка прекомпилирована.

Еще одно средство просмотра кэша — утилита Global Assembly Cache — позволяет решать некоторые задачи, задавая в командной строке такие (взаимоисключающие) ключи.

  • - i Этот флаг устанавливает сборку в глобальный кэш сборки. Например:
gacutil -i HelloWorld.DLL

Скоро вы увидите как добавить сборку Module3Client в кэш с помощью этого ключа.

  • - u Этот флаг удаляет сборку и любую информацию о версиях из глобального кэша сборки. Если вы не укажете информацию о версии, будут удалены все сборки с заданным именем. Поэтому первый приведенный здесь пример удаляет все сборки с именем HelloWorld независимо от номера версии, а второй удаляет только указанную версию:
gacutil -u HelloWorld
gacutil -u HelloWorld, ver=1,0,0,0
  • - / Этот флаг выводит список содержимого глобального кэша сборки, включая им сборки, номер версии, расположение и совместно используемое имя.

Итак, вы создали файл открытого ключа и назначили его сборке. Теперь добавим эту сборку в кэш. Для этого наберите в командной строке:

gacutil -i Module3ClientApp.exe

Если все идет нормально, вы должны получить подтверждение: Assembly successfully added to the cache

ПРИМЕЧАНИЕ В некоторых ранних бета-выпусках .NET я обратил внимание на одну проблему: при просмотре папки c:\winnt\assembly shfusion.dll не работала. Причиной этого было то, что shfusion.dll не регистрировалась должным образом. Если это случилось в вашей системе, откройте командную строку и выполните команду "regsvr32 shfusion.dll" из папки c:\winnt\Microsoft.net\framework\vJCHf , где XXX — это номер версии .NET Framework, с которой вы работаете. Очевидно, имя папки изменится перед началом поставок .NET, поскольку я работал с бета-выпуском. Тогда найдите файл shfusion.dll, и используйте эту папку. Здесь я использовал папку, представляющую мою текущую версию .NET: c:\winnt\microsoft.net\framework\ vl.0.2615>regsvr32 shfusion.dll.

А сейчас вы можете вызвать команду gacutil -/ для просмотра сборок в кэше и поиска ModuleSClient. Для этого можно использовать утилиту Assembly Cache Viewer, что мы и сделаем. Открыв кэш из Windows Explorer (C:\Winnt\Assembly или C:\Windows\Assembly), вы увидите в списке сборку ModuleSClient. Щелкните ее правой кнопкой и выберите Properties, что позволит узнать значение открытого ключа, номер версии и местоположение сборки на жестком диске. Ваш открытый ключ будет отличаться от моего, но он должен совпадать со значением, которое выводится при исполнении приложения ModuleSClientApp.