我有几个需要从C#项目访问的ActiveX组件.
我可以通过Visual Studio的添加引用对话框导入它们,这也将自动生成包装类.(即ABCLib
和AxABCLib
)
我知道我可以通过TLBIMP /primary
在每个单独的OCX文件上运行来手动生成主互操作程序集,但除非我通过Visual Studio用户界面执行,否则我找不到生成ActiveX包装器的方法.
是否有一个命令行版本可以在.NET SDK中生成ActiveX包装器?
我想AxABCLib
从我手动从TLBIMP获得的PIA 生成版本.(即设置命名空间,输出dll文件名等)是否可能?
哦......在查看TLBIMP所属的文件夹后找到它.
它被称为AxImp
.
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\AxImp.exe
基本上,要在您自己的自定义命名空间中生成PIA DLL:
注册您的OCX
regsvr32 abc.ocx
通过运行为您生成强名称密钥对
sn -k
运行TLBIMP并指定所需的命名空间
tlbimp abc.ocx /primary /keyfile:abc.snk /out:abc.dll /namespace:MyNamespace
在ocx上运行AXIMP并使用rcw
开关使用您自己生成的PIA DLL.
aximp abc.ocx /source /rcw:abc.dll
应该这样做.
然而,进口古代TLB存在一些问题.我不知道如何解决这个问题.