Pregunta

Me gustaría ejecutar un archivo .NET dll desde vbscript de forma sincrónica. ¿Es esto posible? Si es así, ¿es posible ejecutar un ensamblado GAC?

gracias, Ofer

¿Fue útil?

Solución

Creo que primero debe hacer visible el ensamblado .NET mediante la inclusión del atributo ComVisible en el archivo AssemblyInfo.cs:

[ComVisible(true)]

Vea esta página en MSDN: Empaquetado de un ensamblaje para COM

Y luego, en VBScript, puede acceder a esos componentes de la misma manera que accede a los componentes COM, es decir, utilizando CreateObject o Server.CreateObject como en:

Set testObj = CreateObject("MyNamespace.MyType")

Creo que GAC podría ser incluso obligatorio para acceder a él desde VBScript, pero no lo he hecho así, así que no estoy seguro.

¿Por qué querrías hacer eso en VBScript? ¿Por qué no crear una aplicación de consola .NET que haría lo que tu VBScript debía hacer? Dado que la DLL ya está en .NET, eso no debería ser un problema, ¿no?


EDITAR: Otra forma de hacer esto podría ser crear una consola EXE en lugar de una DLL (o una EXE que envuelve una DLL) a la que puede llamar desde VBScript como un programa ejecutable normal y examinar los resultados de retorno. Dependiendo de muchos factores, esto podría ser más flexible que mantener el código COM.

Otros consejos

VBScript solo puede ejecutar código desde objetos COM, por lo que necesitaría crear un contenedor COM para su código .NET y luego debería poder llamar a su código .net.

No directamente.

Si el ensamblado .NET se expuso como un componente COM, entonces podría ser.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top