| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > Ошибка регистрации COM+ компонента |
| Автор: FREEDEV 11.7.2007, 17:16 | ||
| Создал COM+ компонент, на моей машине без проблем регистрируется. Пытаюсь заегистрировать на другой машине с помощью mmc(Администрирование -> Службы компонентов - > компьютеры -> Мой компьютер -> Приложения COM+...далее "создать приложение"..."создать компонент", выбираю мой dll) получаю такого рода ошибку:
Хотя с помощью regasm регестрируется и работает нормально. Что б это могло быть? |
| Автор: mr.DUDA 11.7.2007, 21:20 |
| Что-то с комом, видать. Больше хелпа спродуцировать не могу, надо читать вумные книги. |
| Автор: tol05 11.7.2007, 21:42 |
| У меня только немного практического опыта Не знаю, поможет или нет... Я как-то долго мучался с регистрацией, пока не узнал, что для создания более-менее пригодного COM-враппера для .Net библиотеки нужно обязательно выполнить такие условия: 1. Класс должен быть public и предоставлять public методы для интерфейса взаимодействия с внешним кодом. 2. .Net-dll должна иметь атрибут [ComVisible(true)] 3. .Net-dll должна иметь атрибут [ProgId(...)] c уникальным GUID-ом. я генерировал его вручную через GuidGen.exe 4. .Net-dll сборка должна иметь строгое имя и быть установленной в GAC. (утилита gacutil.exe) 5. .Net-dll должна быть зарегистрирована в реестре с помощью "regasm.exe /tlb <FileName>" как именно создал? Через студию? пока я работал через студию, тоже все было хорошо. Только студия сама GUID подбирает, в GAC устанавливает и регистрирует в реестре. Те 5 пунктов я выискал, когда нужно было мой плагин на сервер забросить, где только CLR стояла и больше ничего... |
| Автор: mr.DUDA 11.7.2007, 21:43 |
| Ещё для COM+ можно создать инсталлятор, он сам установит компоненту. Подробнее - например http://www.dialektika.com/books/5-8459-1052-8.html. |
| Автор: FREEDEV 12.7.2007, 10:19 |
| такс... прошелся по пунктам все соблюдено. Вот только вместо gacutil.exe удобне будет использовать оснастку .NET Framework 2.0 Configuration она позвляет просмотреть все сборки , добавить/удалиь их. Но если компонент добавляется в "службе компонентов" он автоматически появляется и в GAC. т.е. о глобальном кеше мне вообще заботиться не нужно. Использовал msi на еще одной машине, все заработало! Видимо какой-то баг фрэймворка. |