Как вызвать функцию C # DLL из VBScript

У меня есть сценарий на сервере, поэтому у меня нет возможности взаимодействия с пользовательским интерфейсом, и мне приходится использовать DLL вместо консольного приложения.

Как вызвать функцию в C # DLL из VBScript?

Как сделать мою DLL COMVisible? Я должен это регистрировать?


person abatishchev    schedule 20.04.2009    source источник
comment
Помогает? stackoverflow .com / questions / 9004352 /   -  person Zameer Ansari    schedule 16.04.2015


Ответы (2)


Вам необходимо пометить свою сборку как видимую COM, установив атрибут COMVisibleAttribute значение true (либо на уровне сборки, либо на уровне класса, если вы хотите предоставить только один тип).

Затем вы регистрируете его с помощью:

regasm /codebase MyAssembly.dll

и, наконец, вызовите его из VBScript:

dim myObj
Set myObj = CreateObject("MyNamespace.MyObject")
person Darin Dimitrov    schedule 20.04.2009
comment
См. Также Предоставление компонентов .NET для COM - person bluish; 22.10.2012
comment
Можно ли использовать Dim myObj As MyNamespace.MyObject в VBScript так же, как в VBA, чтобы не было необходимости CreateObject? Можно ли сделать явную ссылку? - person cheezsteak; 26.05.2016

Да, вам нужно будет установить для атрибута ComVisible значение true, а затем зарегистрировать сборку с помощью regasm или regsvcs вместе с tlbexp. Затем вы можете использовать Server.CreateObject и плыть.

person danish    schedule 20.04.2009