Точка входа DllRegisterServer не найдена - при регистрации библиотеки DLL Vb.NET? - PullRequest
3 голосов
/ 22 марта 2011

Я написал dll на vb.net, который вызывает веб-сервис, использует возвращенные данные и передает результаты обратно вызывающей программе.Первоначально я написал в VS 2008, на Windows 7 (x64).Протестировал его в программе vb 6, также написанной на windows 7, и все заработало.Программа vb6 получила данные, и я мог двигаться дальше.

Реальный мир для меня - использовать эту библиотеку внутри другой библиотеки, написанной на vb 6. Я получаю сообщение об ошибке «Компонент ActiveX не может создать объект»когда я получаю код

Dim myWebService as webService.ComClass1<br> Set myWebService = New webService.ComClass1
Я перекомпилировал свой код на windowsXP (x86) и перезаписал поверх .dll и .tlb.

Когда я пытаюсь зарегистрироватьсяdll я получаю сообщение об ошибке: «DllRegisterServer точка входа не найдена».Кажется, что .tlb хорошо регистрируется в VB, если добавить ссылку на него, и intellesense тоже работает.

У кого-нибудь есть идеи, что мне нужно сделать, чтобы это работало?

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

Вы не регистрируете сборки .NET с Regsvr32.exe.Вы должны использовать Regasm.exe, вы найдете инструмент в каталоге Framework.Используйте параметр / codebase, если вы не помещаете сборку в GAC.Вы не должны работать на компьютере разработчика.

Раньше это работало нормально, вероятно, потому что вы позволили Visual Studio сделать это за вас.

0 голосов
/ 22 марта 2011

Вы не можете зарегистрировать .net DLL так же, как VB6 dll. .NET DLL не содержит внутри себя tlb, это отдельный элемент.

Вместо этого используйте REGASM для .net dll. он находится на вашем компьютере, но вам нужно выполнить поиск, чтобы найти его, поскольку по умолчанию его нет в пути.

...