2012-07-04 47 views
29

He creado una biblioteca de clases para un flujo de trabajo en una máquina local y la compilo. Moví la solución completa a un servidor Tridion y trató de registrar el ensamblado en el servidor utilizando la herramienta regasm.exe de la siguiente manera:¿Cómo registrar un ensamblado .NET como COM?

C:\User\XYZ\Desktop\>RegAsm \codebase F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll 

tengo el siguiente error:

failed to load 'F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll ' because it is not a valid .NET Assembly.

Mis detalles del servidor:

64-bit, Windows Server 2008 R2 Enterprise y .NET Framework 4 instalado.

+0

¿Podría ser un problema de 32 contra 64 bits? ¿Podría ser que el sistema remoto no tiene instalado .NET 4.0? – reuben

+0

es un servidor de 64 bits, y .net 4 instalado, y construí la biblioteca de clases en el marco 4 – user1428019

+0

Sabes que tu barra en "\ codebase" está yendo por el camino equivocado, ¿no? Debe ser "/ codebase" (sin comillas). – reuben

Respuesta

62

¿Estás seguro de que tienes el derecho RegAsm en tu camino ya que lo estás llamando solo por el nombre del exe sin especificar la ruta completa? Debe llamar a la versión correcta de RegAsm para que funcione, es decir, la versión de 32 o de 64 bits de .NET 4.

intente especificar la ruta completa:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

o

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe /codebase F:\Workflow\WorkflowHandler\bin\debug\WorkflowHandler.dll 

También noté que en la ruta a su ensamblado tenía algunos / caracteres en lugar de \. Asegúrate de estar ingresando en el camino correcto.

+0

Muchas gracias, estaba usando el RegAsm.exe incorrecto, ahora puedo registrarme correctamente. ¿Cómo puedo verificar si el conjunto registrado está allí en el lugar correcto? si está realmente registrado o no? – user1428019

+0

@ user1428019 Si no falló, debe registrarse correctamente. Si tiene Visual Studio registrado en la máquina, puede intentar agregar una referencia a un componente COM y ver si está listado allí. De lo contrario, podría escribir un VBScript e intentar crear una instancia del componente COM allí. –

+0

Gracias. Estaba usando Framework 64 RegAsm en una máquina de 64 bits, cuando usé el de 32 bits funcionó. Debe ser un dll de 32 bits :) –

Cuestiones relacionadas