Вопрос

Я бы хотел синхронно запустить файл .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-компонент, то это могло быть так.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top