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

是否可以从vbscript执行.NET程序集(dll)?,.net,dll,com,vbscript,assemblies,.net,Dll,Com,Vbscript,Assemblies,我希望以同步方式从vbscript执行.NET dll文件-这可能吗?如果是,是否可以执行GAC程序集 谢谢, OferVBScript只能从COM对象执行代码,因此您需要为.NET代码创建COM包装,然后您应该能够调用.NET代码。不能直接调用 如果.NET程序集是作为COM组件公开的,那么它可能是。我认为必须首先通过在AssemblyInfo.cs文件中包含ComVisible属性使.NET程序集COM可见: [ComVisible(true)] 请参阅MSDN上的本页: 然后,在VBSc

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

谢谢,
Ofer

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

不能直接调用


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

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

[ComVisible(true)]
请参阅MSDN上的本页:

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

Set testObj = CreateObject("MyNamespace.MyType")
我认为GAC甚至可能强制从VBScript访问它,但我没有这样做,所以我不确定

为什么要在VBScript中执行此操作?为什么不制作一个.NET控制台应用程序来完成VBScript的任务呢?因为DLL已经在.NET上了,所以这应该不是问题,对吧



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

像往常一样,我不得不这样做:-)有一个用vbscript编写的现有项目需要扩展。无法使用vbscript完成扩展。@ofer duh。。。我知道用遗留语言维护遗留代码的痛苦。