![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
бъясните плиз на пальцах... как зарегестрировать мою Dll (Framework 2.0)
Задолбался уже... пробую все, что написано в MSDN, затем проверяю в Ole Viewer, а его там нет. =( |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Wanderer2019, что значит зарегистировать? В GAC?
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
да... поместить в GAC, чтобы в дальнейшем можно было создать данный объект, не подключая библиотек... т.е. что то типа CreateObject
|
|||
|
||||
| reloni |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 10.5.2006 Где: Москва Репутация: 3 Всего: 4 |
Что бы помещать сборку к кеш, нужно сначала присвоить ей строгое имя. В свойствах проекта выбираешь Signing и ставишь галку Sign Assembly. Далее помещаешь сборку в кеш. Далее в проекте добавляешь референс на свою сборку и пользуешься. Это в общих чертах, я этим занимался только один раз
|
|||
|
||||
| ivashkanet |
|
||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
1) Подписываем сборку (создаем StrongName)
а) либо через VS (свойства проекта ---> Подписывание) б) через командную строку (посмотри в MSDN) 2) Регистрируешь сборку в GAC а) Просто в Эксплориере кидаешь файл со сборкой в папку C:\WINDOWS\assembly (p.s. физически ее на диске нет) б) через командную строку (опять же в MSDN) Добавлено @ 12:27
Это сообщение отредактировал(а) ivashkanet - 19.9.2006, 12:28 |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Причём тут GAC? Тебе просто нужно загрузить сборку через статический метод Assembly.LoadFrom(), а затем получить нужный тип. Сборку же можно хранить и в папке приложения.
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Exception,
неее... скорей всего мне придется грузить ее из VBS. |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
вот опять ничего не сработало... итак.. чтобы было понятней что именно я делаю и где может бытьо ошибка опишу все по шагам.
1. Создал проект WindowsControlLibrary2 Итого имею Проект WindowsControlLibrary2 и в нем UserControl1 2. Настроил подписывание проекта через VS 2005 3. Чтобы быть уверенным что утилита al вся имеется в одном месте перегнал мою dll в папку с фреймворком и туда же кинул файл ключа (snk). 4. Прописываю в командной строке: al.exe /out:WindowsControlLibrary2.dll WindowsControlLibrary2.UserControl1 /keyfile:mykey.snk в ответ получаю: ALINK: error importing file 'c:\.....\WindowsControlLibrary2.UserControl1' - - The system cannot find the file specified. Получается что этот гад зачем то ищет файл с именем WindowsControlLibrary2.UserControl1 ... естессьно его там нет... зачем он ему то нужен??? и что это за файл... |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
А что сие означает? Можно узнать? Добавлено @ 14:08 тебе нужно что-то типа gacutil /i WindowsControlLibrary2.dll Добавлено @ 14:09 Блин, Wanderer2019, al делает строгое имя сборке. А оно у тебя уже есть |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
||||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
||||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
А через проводник?
C:\WINDOWS\assembly |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
да мне честно говоря все равно, где она будет лежать... просто привык что всякие ActiveX лежат в гаке... основным критерием является способность получить инстанс через CreateObject... через gacutil не получилось... т.е. он ее в гак бросил, но исключительно как мертвый груз... в системе он ее так и не прописал... что делать не знаю =(
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Ты явно что-то путаешь. ActiveX никогда не лежали и не будут лежать в GAC'е. GAC - это вообще кэш для сборок .NET, и тебе он вообще не нужен, да и сборке необязательно давать строгое имя. Для регистрации в GAC действительно нужно только скопировать файл в его директорию. А тебе нужно:
1) Сделать сборку и классы ComVisible. 2) Зарегистрировать её как COM-сервер regsvr32.exe "путь к сборке". |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |