Возможно ли выполнить .NET assembly (dll) из vbscript?
-
03-07-2019 - |
Вопрос
Я бы хотел синхронно запустить файл .NET dll из vbscript - возможно ли это?если да, возможно ли выполнить сборку GAC?
спасибо, Офер
Решение
Я думаю, вы должны сначала сделать .СЕТЕВУЮ сборку COM-видимой, включив атрибут ComVisible в файл AssemblyInfo.cs:
[ComVisible(true)]
Смотрите эту страницу в MSDN: Упаковка сборки для COM
И затем в VBScript вы можете получить доступ к этим компонентам тем же способом, которым вы получаете доступ к COM-компонентам, т.е.используя CreateObject или сервер.Создайте объект, как в:
Set testObj = CreateObject("MyNamespace.MyType")
Я думаю, что GAC может даже быть обязательным для доступа к нему из VBScript, но я не делал этого таким образом, поэтому я не уверен.
Почему вы хотите сделать это в VBScript?Почему бы просто не создать консольное приложение .NET, которое делало бы то, для чего предназначен ваш VBScript?Поскольку DLL уже находится в .NET, это не должно быть проблемой, верно?
Редактировать: Другим способом сделать это может быть создание консольного EXE-файла вместо библиотеки DLL (или EXE-файла, который оборачивает библиотеку DLL), который вы можете вызывать из VBScript как обычную исполняемую программу и проверять возвращаемые результаты.В зависимости от многих факторов это может быть более гибким, чем поддерживать COM-код.
Другие советы
VBScript может выполнять код только из COM-объектов, поэтому вам нужно будет создать COM-оболочку для вашего .NET-кода, и тогда вы сможете вызывать свой .net-код.
Не напрямую.
Если сборка .NET была представлена как COM-компонент, то это могло быть так.