是否可以从vbscript执行.NET程序集(DLL)?

时间:2009-03-01 16:03:07

标签: .net dll com vbscript assemblies

我想以同步的方式从vbscript执行.NET dll文件 - 这可能吗?如果是,是否可以执行GAC程序集?

感谢, 奥弗

3 个答案:

答案 0 :(得分:14)

我认为您必须首先通过在AssemblyInfo.cs文件中包含ComVisible属性来使.NET程序集可见:

[ComVisible(true)]

在MSDN上查看此页面:Packaging an Assembly for COM

然后在VBScript中,您可以通过访问COM组件的相同方式访问这些组件,即使用CreateObject或Server.CreateObject,如下所示:

Set testObj = CreateObject("MyNamespace.MyType")

我认为GAC甚至可能必须从VBScript访问它,但我没有这样做,所以我不确定。

为什么要在VBScript中执行此操作?为什么不只是创建一个.NET控制台应用程序来执行您的VBScript要做的事情?由于DLL已经在.NET上,这应该不是问题,对吗?


编辑:另一种方法可能是创建一个控制台EXE而不是一个DLL(或一个包装DLL的EXE),你可以像普通的可执行程序一样从VBScript调用它检查返回结果。根据许多因素,这可能比维护COM代码更灵活。

答案 1 :(得分:2)

VBScript只能从COM对象执行代码,因此您需要为.NET代码创建一个COM包装器,然后您应该能够调用.net代码。

答案 2 :(得分:2)

不直接。

如果.NET程序集作为COM组件公开,那么它可能是。