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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка регистрации COM+ компонента 
V
    Опции темы
FREEDEV
Дата 11.7.2007, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

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



Создал COM+ компонент, на моей машине без проблем регистрируется.
Пытаюсь заегистрировать на другой машине с помощью mmc(Администрирование -> Службы компонентов - > компьютеры -> Мой компьютер -> Приложения COM+...далее "создать приложение"..."создать компонент", выбираю мой dll) получаю такого рода ошибку:

Код

Installation of 'H:\Component.dll' into '{9037A4E3-32CA-4670-BC27-EF88DC06ABD5}' failed with an exception:

System.EnterpriseServices.RegistrationException: Could not install type library 'H:\Component.tlb' into application 'Component'.
   at System.EnterpriseServices.RegistrationDriver.InstallAssembly(RegistrationConfig regConfig, Object obSync)
   at System.EnterpriseServices.RegistrationHelper.InstallAssemblyFromConfig(RegistrationConfig& regConfig)
   at System.EnterpriseServices.RegistrationHelper.InstallAssembly(String assembly, String& application, String partition, String& tlb, InstallationFlags installFlags)
   at System.EnterpriseServices.Internal.ComManagedImportUtil.InstallAssembly(String asmpath, String parname, String appname)




Хотя с помощью regasm регестрируется и работает нормально. Что б это могло быть?
--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
mr.DUDA
Дата 11.7.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Что-то с комом, видать. Больше хелпа спродуцировать не могу, надо читать вумные книги.


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


Эксперт
***


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

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



У меня только немного практического опыта  smile 
Не знаю, поможет или нет... 

Я как-то долго мучался с регистрацией, пока не узнал, что для создания более-менее пригодного 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>"

Цитата(FREEDEV @  11.7.2007,  17:16 Найти цитируемый пост)
Создал COM+ компонент, на моей машине без проблем регистрируется
как именно создал? Через студию?
пока я работал через студию, тоже все было хорошо. Только студия сама GUID подбирает, в GAC устанавливает и регистрирует в реестре.

Те 5 пунктов я выискал, когда нужно было мой плагин на сервер забросить, где только CLR стояла и больше ничего...


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
mr.DUDA
Дата 11.7.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Ещё для COM+ можно создать инсталлятор, он сам установит компоненту. Подробнее - например тут.


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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

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



Цитата(tol05 @  11.7.2007,  21:42 Найти цитируемый пост)
как именно создал? Через студию?

Да конечно через студию, по пунктам завтра гляну. помойму все совпадает

Цитата(mr.DUDA @  11.7.2007,  21:43 Найти цитируемый пост)
Ещё для COM+ можно создать инсталлятор, он сам установит компоненту. Подробнее - например тут.


Ентой книжки жаль под рукой нет :(
Инсталлятор создавал с помощью проги для создания сетупов,
так же можно создать msi файл экспортировав приложение с компонентом из mmc.
но все эти варианты при попытке установки на другой машине приводят к той же ошибке 
--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
FREEDEV
Дата 12.7.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

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



такс...
прошелся по пунктам все соблюдено. Вот только вместо gacutil.exe удобне будет использовать оснастку .NET Framework 2.0 Configuration
она позвляет просмотреть все сборки , добавить/удалиь их. Но если компонент добавляется в "службе компонентов" он автоматически появляется и в GAC. т.е. о глобальном кеше мне вообще заботиться не нужно.
Использовал msi на еще одной машине, все заработало! Видимо какой-то баг фрэймворка.
--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




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


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

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