| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Снова регистрация ... |
| Автор: Wanderer2019 19.9.2006, 11:29 |
| бъясните плиз на пальцах... как зарегестрировать мою Dll (Framework 2.0) Задолбался уже... пробую все, что написано в MSDN, затем проверяю в Ole Viewer, а его там нет. =( |
| Автор: ivashkanet 19.9.2006, 11:35 |
| Wanderer2019, что значит зарегистировать? В GAC? |
| Автор: Wanderer2019 19.9.2006, 12:04 |
| да... поместить в GAC, чтобы в дальнейшем можно было создать данный объект, не подключая библиотек... т.е. что то типа CreateObject |
| Автор: reloni 19.9.2006, 12:22 |
| Что бы помещать сборку к кеш, нужно сначала присвоить ей строгое имя. В свойствах проекта выбираешь Signing и ставишь галку Sign Assembly. Далее помещаешь сборку в кеш. Далее в проекте добавляешь референс на свою сборку и пользуешься. Это в общих чертах, я этим занимался только один раз |
| Автор: ivashkanet 19.9.2006, 12:22 | ||||
| 1) Подписываем сборку (создаем StrongName) а) либо через VS (свойства проекта ---> Подписывание) б) через командную строку (посмотри в MSDN) 2) Регистрируешь сборку в GAC а) Просто в Эксплориере кидаешь файл со сборкой в папку C:\WINDOWS\assembly (p.s. физически ее на диске нет) б) через командную строку (опять же в MSDN) Добавлено @ 12:27
|
| Автор: Exception 19.9.2006, 12:40 |
| Причём тут GAC? Тебе просто нужно загрузить сборку через статический метод Assembly.LoadFrom(), а затем получить нужный тип. Сборку же можно хранить и в папке приложения. |
| Автор: Wanderer2019 19.9.2006, 13:33 |
| Exception, неее... скорей всего мне придется грузить ее из VBS. |
| Автор: Wanderer2019 19.9.2006, 14:01 |
| вот опять ничего не сработало... итак.. чтобы было понятней что именно я делаю и где может бытьо ошибка опишу все по шагам. 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 ... естессьно его там нет... зачем он ему то нужен??? и что это за файл... |
| Автор: Wanderer2019 19.9.2006, 14:15 | ||
Хорошо.. в таком случае как зарегистрить эту сборку????? |
| Автор: ivashkanet 19.9.2006, 14:20 |
| Автор: Wanderer2019 19.9.2006, 14:45 |
просто копирует dll в папку GAC... на этом ее функциональность заканчивается... она никак не регистрируется в результате этих действий... через Ole Viewer и при помощи CreateObject её не видно и не слышно. |
| Автор: ivashkanet 19.9.2006, 14:50 |
| А через проводник? C:\WINDOWS\assembly |
| Автор: Wanderer2019 19.9.2006, 14:55 |
| да мне честно говоря все равно, где она будет лежать... просто привык что всякие ActiveX лежат в гаке... основным критерием является способность получить инстанс через CreateObject... через gacutil не получилось... т.е. он ее в гак бросил, но исключительно как мертвый груз... в системе он ее так и не прописал... что делать не знаю =( |
| Автор: Exception 19.9.2006, 15:18 |
| Ты явно что-то путаешь. ActiveX никогда не лежали и не будут лежать в GAC'е. GAC - это вообще кэш для сборок .NET, и тебе он вообще не нужен, да и сборке необязательно давать строгое имя. Для регистрации в GAC действительно нужно только скопировать файл в его директорию. А тебе нужно: 1) Сделать сборку и классы ComVisible. 2) Зарегистрировать её как COM-сервер regsvr32.exe "путь к сборке". |
| Автор: ivashkanet 19.9.2006, 15:24 | ||
А это не правда
Только, да не очень. В папке C:\WINDOWS\assembly физически не все все так просто как в проводнике. Там куча папок и подпапок (только GAK-ов у меня 3 штуки Просто регистратор и просмотрщик GAK встроен внутрь виндового проводника |
| Автор: Exception 19.9.2006, 15:33 |
| Я же объяснил -- ему не GAC нужен |
| Автор: Wanderer2019 19.9.2006, 17:09 |
как сие сделать? |
| Автор: mr.DUDA 19.9.2006, 18:24 |
| Поставить одновременный атрибут в AssemblyInfo в true (он там по дефолту в false). |
| Автор: Wanderer2019 26.9.2006, 14:20 | ||
| Сделал WindowsControlLibrary ... Откомпилил... - получил длл. В коде поставил:
Говорит, то не может зарегестрить т.к. Entry Point Was Not Found =( |