Stimulsoft Reports.Net - удобная регистрация в GAC. Как это сделано?

Обсуждение Stimulsoft Reports.NET
Ответить
Аватара пользователя
compositum
Сообщения: 252
Зарегистрирован: 15 янв 2008, 15:12
Откуда: Санкт-Петербург

Stimulsoft Reports.Net - удобная регистрация в GAC. Как это сделано?

Сообщение compositum »

Добрый день. В 11-й главе книги "C# и платформа .NET 3.0" Эндрю Троелсен подробно объясняет, как нужно создавать общие сборки (т.е. те сборки, которые размещаются в GAC).

При этом он предупреждает, что ежели программист попытается в Visual Studio подключить в свой проект зарегистрированную им же ранее в GAC сборку таким способом, как это обычно делается - через диалоговое окно "Add references" на вкладке ".NET", то ничего не выйдет, т.к. сборка не будет отображаться в ней.
Так же не удастся подключиться и на вкладке "Browse", если попытаться указать добавленную программистом сборку, находящуюся в GAC - ее видно, но невозможно выделить.

Троелсен говорит, что для подключения своей библиотеки, размещенной в GAC, придется указать через вкладку "Browse" исходники оригинального проекта.
Это очень неудобно...

Однако, давно заметил, что все библиотеки StimulSoft отображаются в диалоговом окне "Add references" на вкладке ".NET" и их можно легко выбрать, подключив к своему проекту, выбрав их на этой вкладке, вопреки утверждению Троелсена.

Подскажите, пожалуйста, как вы реализовали этот момент?
ppvlad
Сообщения: 24
Зарегистрирован: 26 янв 2009, 10:35
Откуда: Moscow
Контактная информация:

Stimulsoft Reports.Net - удобная регистрация в GAC. Как это сделано?

Сообщение ppvlad »

http://www.gotdotnet.ru/DotNet/FAQ/Comm ... 61103.aspx



Вопрос

Как сделать, чтобы мои сборки были видны в диалоге "Add Reference"?
Мои сборки прописаны в GAC, но когда я жму на AddReference в Visual Studio, на закладке .NET они не появляются. Что делать?

Ответ

Просто добавьте путь к вашим сборкам в ключ реестра HKLM\Software\Microsoft\VisualStudio\7.1\AssemblyFolders. Вместо 7.1 поставьте вашу версию Visual Studio (7.0 для VS.NET 2002, 7.1 для VS.NET 2003 и 8.0 для Whidbey).

Для Visual Studio 2005 ветка реестра другая: HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\

Также можно записать сборки по тому же пути под ключом HKEY_CURRENT_USER. Тогда они будут видны только этому пользователю.

Аватара пользователя
compositum
Сообщения: 252
Зарегистрирован: 15 янв 2008, 15:12
Откуда: Санкт-Петербург

Stimulsoft Reports.Net - удобная регистрация в GAC. Как это сделано?

Сообщение compositum »

ppvlad писал(а):http://www.gotdotnet.ru/DotNet/FAQ/Comm ... 61103.aspx



Вопрос

Как сделать, чтобы мои сборки были видны в диалоге "Add Reference"?
Мои сборки прописаны в GAC, но когда я жму на AddReference в Visual Studio, на закладке .NET они не появляются. Что делать?

Ответ

Просто добавьте путь к вашим сборкам в ключ реестра HKLM\Software\Microsoft\VisualStudio\7.1\AssemblyFolders. Вместо 7.1 поставьте вашу версию Visual Studio (7.0 для VS.NET 2002, 7.1 для VS.NET 2003 и 8.0 для Whidbey).

Для Visual Studio 2005 ветка реестра другая: HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\

Также можно записать сборки по тому же пути под ключом HKEY_CURRENT_USER. Тогда они будут видны только этому пользователю.
Благодарю! Дома попробую, т.к. на работе не хватает прав на выполнение данного действия.
ppvlad
Сообщения: 24
Зарегистрирован: 26 янв 2009, 10:35
Откуда: Moscow
Контактная информация:

Stimulsoft Reports.Net - удобная регистрация в GAC. Как это сделано?

Сообщение ppvlad »

вдогонку (оттуда-же http://www.gotdotnet.ru/LearnDotNet/NET ... k/576.aspx):


...

Использование вкладки .NET диалогового окна Add Reference

На вкладке .NET диалогового окна Add Reference показываются системные сборки и PIA-сборки (Primary Interop Assembly), входящие в состав .NET Framework, и, возможно, другие сборки. На этой вкладке обычно (но не обязательно) перечисляются сборки, установленные в GAC.

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

Например, можно изменить реестр так, чтобы его записи указывали имена папок со сборками, которые генерируются вашим сценарием сборки (локально или на сервере сборок). Тогда разработчики смогут ссылаться на эти сборки через вкладку .NET, не используя кнопку Browse.

Добавление на вкладку .NET собственных сборок

1. Создайте подраздел (например InnerSystemAssemblies) в одном из следующих разделов реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders

2. Задайте в этом разделе параметр по умолчанию с именем папки, содержащей ваши сборки.

3.Если вы открыли Visual Studio .NET, то, чтобы внесенные изменения вступили в силу, закройте эту среду и перезапустите.

...






и контрольный выстрел (http://support.microsoft.com/default.as ... -US;306149):




How to display an assembly in the "Add Reference" dialog box:

When you are developing a class library, you may want Visual Studio .NET to list your library in the Add Reference dialog box on the .NET tab without the user having to browse for it.

This issue is not resolved if you install your assembly to the global assembly cache, because the Add Reference dialog box is path-based and does not enumerate the components from the global assembly cache.

To display your assembly in the Add Reference dialog box, you can add a registry key, such as the following, which points to the location of the assembly
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\MyAssemblies]@="C:\\MyAssemblies"
where MyAssemblies is the name of the folder in which the assemblies reside.

NOTE: You can create the this registry entry under the HKEY_LOCAL_MACHINE hive. This will change the setting for all of the users on the system. If you create this registry entry under HKEY_CURRENT_USER, this entry will affect the setting for only the current user.

Restart Visual Studio .NET after you have added the key.
Ответить