2009-04-20 37 views
10

Tengo mi secuencia de comandos en el servidor, por lo que no tengo la interacción de IU disponible y tengo que usar DLL en lugar de la aplicación de consola.Cómo llamar a la función DLL de C# desde VBScript

Cómo llamar a una función en C# DLL desde VBScript?

¿Cómo puedo hacer que mi DLL sea COMVisible? ¿Debo registrarlo?

+0

¿Ayuda? http://stackoverflow.com/questions/9004352/call-a-function-in-a-console-app-from-vbscript – xameeramir

Respuesta

21

Debe marcar su ensamblaje como COM visible configurando COMVisibleAttribute en verdadero (ya sea a nivel de ensamblaje o en el nivel de clase si desea exponer un solo tipo).

Siguiente lo registra con:

regasm /codebase MyAssembly.dll 

y finalmente llamarlo desde VBScript:

dim myObj 
Set myObj = CreateObject("MyNamespace.MyObject") 
+0

Véase también [Exponer componentes .NET a COM] (http://www.codeproject.com)/Articles/3511/Exposing-NET-Components-to-COM? Fid = 14076 & df = 90 & mpp = 25 & noise = 3 & prof = False & sort = Position & view = Quick & spc = Relajado & fr = 26 # csharp) – bluish

+0

¿Es posible usar 'Dim myObj As MyNamespace.MyObject 'en VBScript como sea posible en VBA, por lo que no necesita' CreateObject'? ¿Hay alguna referencia explícita que puedas hacer? – cheezsteak

2

Sí que se necesitan para establecer el atributo ComVisible true y luego registrar el ensamblado utilizando regasm o regsvcs junto con tlbexp. Luego puede usar Server.CreateObject y navegar.

Cuestiones relacionadas