我想我可以编译一个C# DLL,然后将其公开为COM对象,以便可以从VBscript中使用CreateObject调用。只是我不确定如何做到这一点...
我想我可以编译一个C# DLL,然后将其公开为COM对象,以便可以从VBscript中使用CreateObject调用。只是我不确定如何做到这一点...
regasm /codebase
进行注册。regasm
分配它们,但每次(以及每个地方)注册类时都会有所不同。如果需要GUID保持不变,请使用Guid
属性标记成员。MarshalAs
属性标记属性和方法。InterfaceType
属性。这里有一篇非常好的(虽然有些过时)关于COM互操作和.Net的文章在这里。现在很多该文章提到的事情,比如生成类型库,都已经自动处理了。同时微软的文档也是最新的,但不是那么详细。
你应该使用regasm
实用程序来注册程序集(就像使用regsvr32
注册COM服务器一样)。然后你就可以从COM中使用它了。确保它已安装在GAC中。这些东西应该有[ComVisible(true)]
才能从COM中使用。
我需要花点时间去寻找C#的选项(我习惯于VB.Net),但您可以通过在解决方案资源管理器中双击属性
文件夹,选择应用程序
选项卡,然后单击程序集信息...
按钮来找到该选项。