2011-07-11 20 views
8

Creé un objeto COM con C# ayer que dio como resultado tres archivos en el directorio bin/release de mi proyecto VS 2010 (comclass.dll, comclass.pdb y comclass.tlb). Ahora, cuando construyo la solución en el proyecto, VS registra automáticamente la clase para mí en la PC de desarrollo y no tengo problemas para acceder al objeto COM y sus métodos desde, digamos, Powershell. Sin embargo, al copiar los tres archivos en un equipo diferente y tratar de registrar la DLL con regsvr32, me dice queRegistro de un objeto COM creado con VS C# 2010

el módulo "comclass.dll" se cargó pero no se encontró el punto de entrada DllRegisterServer.

Asegúrese de que "comclass.dll" sea un archivo DLL o OCX válido y vuelva a intentarlo.

El uso de regasm con el parámetro /tlb en el archivo .tlb me da un mensaje similar. Así que estoy un poco perplejo. ¿Alguien sabe cómo debo proceder desde aquí?

Respuesta

11

copiar el archivo DLL (y opcionalmente el AP si desea que las rutas de archivos y números de línea en sus seguimientos de pila). Esta es la forma en que se registra, y se crea el TLB:

"%WINDIR%\Microsoft.NET\Framework\v2.0.50727\regasm.exe" comclass.dll /tlb /nologo /codebase 

Desde Visual Studio registra con éxito, eso podría funcionar. De lo contrario, también podría abrir el panel de Salida mientras realiza una Reconstrucción y ver cómo Visual Studio llama al regasm.

+0

Gracias Joe. C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> regasm c: \ comtest \ comclass.dll/tlb/nologo/codebase Tipos registrados con éxito Conjunto exportado a 'c: \ comtest \ comclass.tlb', y la biblioteca tipo se registró con éxito. Exactamente lo que quería. Voy a poner esto en mi blog. Gracias de nuevo. – deutschZuid

Cuestiones relacionadas