Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как заюзать свою "общую" длл-ку? 
:(
    Опции темы
Budda
Дата 23.10.2005, 05:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Сделал с C# dll-ку, положил её в папку //WinNT/Assembly, в проводнике (в GAC) эта сборка - видна. Делаю новый проект, жму Projects->Add reference. Но моей библиотеки в списке нет. Почему? Как сделать, чтобы появилась? Перезагрузка тоже не помогает. Хэлп, плиз, кто может.

Я то могу "вручную" указать путь к ДЛЛ-ке, но Троелсен говорит, что после добавления модуля в GAC, имя модуля должно отображаться в списке диалогового окна "Add Reference".

??
PM WWW   Вверх
Void
Дата 23.10.2005, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 25
Всего: 173



Регистрация сборок в GAC осуществляется с помощью утилиты gacutil.exe. Просто положить сборку в папку недостаточно.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Exception
Дата 23.10.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



gacutil.exe /i путькдлл
и не забудь сделать сборке сильное имя
PM   Вверх
Budda
Дата 23.10.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Voidgacutil'ом регистрировать:
1. вместо копирования
или
2. после копирования


спасибо.
PM WWW   Вверх
mr.DUDA
Дата 23.10.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Установка dll в GAC никоим образом не связана с диалогом "Add reference...". Всё работает через т.н. public-директории, пути к которым прописаны в реестре. Подробнее почитать можно здесь.


--------------------
user posted image
PM MAIL WWW   Вверх
Budda
Дата 23.10.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Скопировал либу я ещё неделю назад (тогда же для неё было сделано и сильное имя). Сейчас сделал для неё gacutil - получил сообщение, что сборка успешно добавлена в кэш (работаю с правами админа). Перезагрузка винды наверное не нужна, верно? Запускаю проект, иду в Add Reference - сборки не видно... ?
PM WWW   Вверх
Exception
Дата 23.10.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



вот уж не думал... +1
PM   Вверх
Budda
Дата 23.10.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



mr.DUDA почитал, но мало понял. Если я не ошибся, то там рекомендуют ложить свои либы в GAC только тогда, когда их будет юзать ещё кто-то кроме меня. Верно?

А на наличие либы в том списке влияет только наличие записи про либу в нужном месте реестра, так?
Цитата
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\MyAssemblies]@="C:\\MyAssemblies"


А как заюзать либу, которая находится в GAC? Тоже добавлять на неё ссылку? Только путь к либе искать вручную? Нашёл вручную, но вот выбрать эту либу - не получается....


??
PM WWW   Вверх
mr.DUDA
Дата 24.10.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Budda @ 23.10.2005, 18:47)
mr.DUDA почитал, но мало понял. Если я не ошибся, то там рекомендуют ложить свои либы в GAC только тогда, когда их будет юзать ещё кто-то кроме меня. Верно?

А на наличие либы в том списке влияет только наличие записи про либу в нужном месте реестра, так?

Цитата
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\MyAssemblies]@="C:\\MyAssemblies"

А как заюзать либу, которая находится в GAC? Тоже добавлять на неё ссылку? Только путь к либе искать вручную? Нашёл вручную, но вот выбрать эту либу - не получается....


По-моему, всё понятно написано. Добавляем ключ в реестр, чтобы создать новый public-каталог. Копируем в этот каталог свою длл-ку. Всё, этого достаточно для design-time, то есть студия твою дллку увидит. Из GAC-а студия ничего не поднимает, GAC нужен в run-time, если дллка используется совместно несколькими приложениями. Посмотри примеры, как сделано в DevExpress или CrystalReports: хоть все их дллки лежат в GAC'е, но одновременно и в папке Program Files\Common Files.
Добавлено @ 18:53
З.Ы.
Как вариант, можно добавить файловый референс, т.е. нажать кнопку "Browse...".


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 24.10.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



а объявить GAC public path'ом?
PM   Вверх
mr.DUDA
Дата 25.10.2005, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Run @ 24.10.2005, 20:57)
а объявить GAC public path'ом?

Там каждая DLL лежит в своей отдельной папке - что, все папки в реестре прописывать ? smile


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 29.10.2005, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата(mr @ 25.10.2005, 19:55)
что, все папки в реестре прописывать ? 

тока щас заметил, что

Цитата(mr @ 25.10.2005, 19:55)
Там каждая DLL лежит в своей отдельной папке

smile
извиняюсь...
ПЫСЫ вот если бы он еще сканировал все внутр. директории... smile
PM   Вверх
mr.DUDA
Дата 30.10.2005, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Run @ 29.10.2005, 14:34)
вот если бы он еще сканировал все внутр. директории.

Одна из причин, по которой сие неосуществимо - возможность присутствия нескольких (а не одной) версий одной и той же assembly. GAC есть GAC smile.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.