Можно ли выполнить сборку .NET (DLL) из VBScript? - PullRequest
6 голосов
/ 01 марта 2009

Я хотел бы выполнить файл .NET dll из vbscript синхронно - возможно ли это? Если да, возможно ли выполнить сборку GAC?

спасибо, Офер

Ответы [ 3 ]

14 голосов
/ 01 марта 2009

Я думаю, что сначала вы должны сделать сборку .NET COM видимой, включив атрибут ComVisible в файл AssemblyInfo.cs:

[ComVisible(true)]

См. Эту страницу в MSDN: Упаковка сборки для COM

И затем в VBScript вы можете получить доступ к этим компонентам тем же способом, что и к компонентам COM, то есть с помощью CreateObject или Server.CreateObject, как в:

Set testObj = CreateObject("MyNamespace.MyType")

Я думаю, что GAC может даже быть обязательным для доступа к нему из VBScript, но я не сделал этого таким образом, поэтому я не уверен.

Почему вы хотите сделать это в VBScript? Почему бы просто не создать консольное приложение .NET, которое бы делало то, для чего предназначался ваш VBScript? Поскольку DLL уже установлена ​​на .NET, это не должно быть проблемой, верно?


РЕДАКТИРОВАТЬ: Другой способ сделать это может состоять в том, чтобы создать консольный EXE-файл вместо DLL (или EXE-файла, который оборачивает DLL), который можно вызывать из VBScript, как обычную исполняемую программу, и исследовать его. вернуть результаты. В зависимости от многих факторов это может быть более гибким, чем поддержка кода COM.

2 голосов
/ 01 марта 2009

Не напрямую.

Если сборка .NET была представлена ​​как компонент COM, это может быть.

2 голосов
/ 01 марта 2009

VBScript может выполнять код только из объектов COM, поэтому вам нужно создать оболочку COM для вашего кода .NET, а затем вы сможете вызывать код .net.

...