2009-03-01 9 views

Respuesta

14

creo que primero debe hacer el ensamblado de .NET COM-visibles incluyendo el atributo ComVisible en el archivo AssemblyInfo.cs:

[ComVisible(true)] 

Ver esta página en MSDN: Packaging an Assembly for COM

Y luego, en VBScript se puede acceder a estos componentes por los mismos medios de tocar ningún componente COM, es decir, utilizando CreateObject o Server.CreateObject como en:

Set testObj = CreateObject("MyNamespace.MyType") 

I t Hink GAC incluso podría ser obligatorio para acceder desde VBScript, pero no lo he hecho de esta manera, así que no estoy seguro.

¿Por qué le gustaría hacer eso en VBScript? ¿Por qué no simplemente crear una aplicación de consola .NET que hiciera lo que su VBScript debía hacer? Dado que el DLL ya está en .NET, eso no debería ser un problema, ¿verdad?


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

+0

Como de costumbre estoy obligado a que :-) Hay un proyecto existente escrito en vbscript que debe ser ampliado. la extensión no se puede hacer usando vbscript. – ofer

+0

@ofer duh ... Sé el dolor de mantener el código heredado en un idioma heredado. – chakrit

2

VBScript sólo pueden ejecutar código de objetos COM, por lo que se necesita para crear un contenedor COM para su código .NET y, entonces debería ser capaz de llamar a su código .NET.

2

No directamente.

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

Cuestiones relacionadas