Question

J'aimerais exécuter un fichier dll .NET à partir de vbscript de manière synchrone - est-ce possible? Si oui, est-il possible d'exécuter un assemblage GAC?

merci, Ofer

Était-ce utile?

La solution

Je pense que vous devez d'abord rendre l'assembly .NET visible par COM en incluant l'attribut ComVisible dans le fichier AssemblyInfo.cs:

[ComVisible(true)]

Voir cette page sur MSDN: Emballer un assemblage pour COM

Ensuite, dans VBScript, vous pouvez accéder à ces composants de la même façon que vous accédez aux composants COM, c'est-à-dire en utilisant CreateObject ou Server.CreateObject comme dans:

Set testObj = CreateObject("MyNamespace.MyType")

Je pense que GAC pourrait même être obligé d'y accéder à partir de VBScript, mais je ne l'ai pas fait de cette façon, alors je ne suis pas sûr.

Pourquoi voudriez-vous faire cela dans VBScript? Pourquoi ne pas simplement créer une application console .NET qui ferait ce que votre VBScript était censé faire? Puisque la DLL est déjà sur .NET, cela ne devrait pas poser de problème, non?

MODIFIER: Une autre méthode consiste à créer un fichier EXE de console au lieu d'une DLL (ou d'un fichier EXE qui enveloppe une DLL) que vous pouvez appeler à partir de VBScript comme un programme exécutable normal. examiner les résultats de retour. En fonction de nombreux facteurs, cela pourrait être plus flexible que de conserver le code COM.

Autres conseils

VBScript ne peut exécuter que du code à partir d'objets COM. Vous devez donc créer un wrapper COM pour votre code .NET et pouvoir ensuite appeler votre code .net.

Pas directement.

Si l'assembly .NET était exposé en tant que composant COM, il pourrait alors l'être.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top