Domanda

Vorrei eseguire un file dll .NET da vbscript in modo sincrono - è possibile? se sì, è possibile eseguire un assembly GAC?

Grazie, Ofer

È stato utile?

Soluzione

Penso che devi prima rendere visibile l'assembly .NET COM includendo l'attributo ComVisible nel file AssemblyInfo.cs:

[ComVisible(true)]

Vedi questa pagina su MSDN: Imballaggio di un assieme per COM

E poi in VBScript puoi accedere a quei componenti con lo stesso mezzo con cui accedi ai componenti COM, ovvero usando CreateObject o Server.CreateObject come in:

Set testObj = CreateObject("MyNamespace.MyType")

Penso che GAC potrebbe anche essere obbligatorio per accedervi da VBScript ma non l'ho fatto in questo modo, quindi non ne sono sicuro.

Perché dovresti farlo in VBScript? Perché non creare semplicemente un'applicazione console .NET che farebbe ciò che VBScript avrebbe dovuto fare? Dato che la DLL è già su .NET, questo non dovrebbe essere un problema, giusto?


EDIT: Un altro modo per farlo potrebbe essere quello di creare una console EXE anziché una DLL (o un EXE che racchiuda una DLL) che puoi chiamare da VBScript come un normale programma eseguibile e esaminare i risultati di ritorno. A seconda di molti fattori, questo potrebbe essere più flessibile del mantenimento del codice COM.

Altri suggerimenti

VBScript può eseguire solo codice da oggetti COM, quindi è necessario creare un wrapper COM per il proprio codice .NET e quindi si dovrebbe essere in grado di chiamare il proprio codice .net.

Non direttamente.

Se l'assembly .NET è stato esposto come componente COM, potrebbe esserlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top