Как добавить в GAC сборку Silverlight

Недавно я озадачился вопросом добавления сборки Silverlight в GAC. Это необходимо для того, чтобы можно было сослаться на сборку из нескольких проектов и не переносить эту сборку каждый раз с проектом.

Как известно – среда исполнения Silverlight – это не то же самое, что среда исполнения .NET Framework и простое добавление сборки в глобальное хранилище при помощи gacutil не дает никакого эффекта. Но с другой стороны, после установки Silverlight мы можем видеть в списке доступных сборок диалога Add reference в Visual Studio набор стандартных сборок, входящих в состав Sliverlight.

Как оказалось, для того, чтобы дать возможность ссылаться на сборку из любых проектов через диалог Add reference, нужно добавить специальный ключ в реестр:

  1. Открываем ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v4.0\AssemblyFoldersEx. Если у вас 32-битная ОС, то составляющую Wow6432Node нужно исключить.
  2. В этом местоположении создаем ключ с каким-либо именем (например, именем проекта).
  3. Добавляем значение по умолчанию, содержащее путь к сборкам на жестком диске.

Теперь при добавлении ссылки в проект, в диалоге Add reference будут доступны все сборки из указанной папки.

Решение проблемы очень не сложное, но в нужный момент, бывает, его найти очень не просто. Успехов вам!