6 Stimmen

Ist es möglich, eine .NET-Assembly (dll) von vbscript aus auszuführen?

Ich möchte eine .NET dll-Datei von vbscript in einer synchronen Weise ausführen - ist dies möglich? wenn ja, ist es möglich, eine GAC-Assembly ausführen?

Dank, Ofer

14voto

chakrit Punkte 59834

Ich denke, Sie müssen zunächst die .NET-Assembly COM-sichtbar machen, indem Sie das Attribut ComVisible in die Datei AssemblyInfo.cs aufnehmen:

[ComVisible(true)]

Siehe diese Seite auf MSDN: Verpackung einer Baugruppe für COM

Und dann können Sie in VBScript auf diese Komponenten auf die gleiche Weise zugreifen wie auf COM-Komponenten, d.h. mit CreateObject oder Server.CreateObject wie in:

Set testObj = CreateObject("MyNamespace.MyType")

Ich denke, GAC könnte sogar obligatorisch sein, um von VBScript aus darauf zuzugreifen, aber ich habe es nicht auf diese Weise gemacht, also bin ich nicht sicher.

Warum sollten Sie das in VBScript tun? Warum nicht einfach eine .NET-Konsolenanwendung erstellen, die das tut, wofür Ihr VBScript gedacht war? Da die DLL bereits auf .NET ist, sollte das kein Problem sein, oder?


EDITAR: Eine andere Möglichkeit wäre, anstelle einer DLL eine Konsolen-EXE zu erstellen (oder eine EXE, die eine DLL verpackt), die Sie von VBScript aus wie ein normales ausführbares Programm aufrufen und die Rückgabeergebnisse untersuchen können. Abhängig von vielen Faktoren könnte dies flexibler sein als die Beibehaltung von COM-Code.

2voto

Otávio Décio Punkte 72052

VBScript kann nur Code von COM-Objekten ausführen, so dass Sie einen COM-Wrapper für Ihren .NET-Code erstellen müssen und dann sollten Sie in der Lage sein, Ihren .net-Code aufzurufen.

2voto

Richard Punkte 103159

Nicht direkt.

Wenn die .NET-Assembly als COM-Komponente exponiert wäre, könnte sie das sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X