是否有可能从vbscript执行.NET程序集(dll)?
答
我认为你必须首先使.NET程序集COM可见通过在AssemblyInfo.cs文件的标记有ComVisible特性属性:
[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代码更灵活。
答
的VBScript只能从COM对象执行代码,所以你需要创建一个COM包装为您的.NET代码,那么你应该能够调用.NET代码。
答
不是直接。
如果.NET程序集是作为COM组件公开的,那么它可能是。
像往常一样我被迫去那个:-) 有一个写在vbscript中的项目需要扩展。 扩展名不能用vbscript完成。 – ofer 2009-03-01 16:43:28