C# 具有多个Classid的ActiveX

C# 具有多个Classid的ActiveX,c#,javascript,activex,C#,Javascript,Activex,我创建了这个ActiveX控件,并使用[ComVisible(true)]向COM公开了几个类,因此每个类都有自己的classid(例如GUID)。我使用以下.inf将所有内容打包到cab文件中: [version] signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] ActiveXInstaller.msi=ActiveXInstaller.msi [ActiveXInstaller.msi] file-win32-x86=thiscab cl

我创建了这个ActiveX控件,并使用
[ComVisible(true)]
向COM公开了几个类,因此每个类都有自己的classid(例如GUID)。我使用以下.inf将所有内容打包到cab文件中:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
ActiveXInstaller.msi=ActiveXInstaller.msi

[ActiveXInstaller.msi]
file-win32-x86=thiscab
clsid={ 11EABF82-A840-48AE-B11A-A05DCAFCD0D4 }
clsid = { 60A1606C-7382-4EC6-A8F1-05428FAABE72 }

[Setup Hooks]
install=install

[install]
run=msiexec.exe /package """%EXTRACT_DIR%\ActiveXInstaller.msi""" /qn
在Javascript中,我创建了两个对象:

var x = new ActiveXObject("ActiveX.Class1");
var y =  new ActiveXObject("ActiveX.Class2");
第一个对象(x)工作正常,我能够调用该类的方法,但对于第二个对象,我得到“Automation server无法创建对象”

我到处找了找,但找不到任何解决办法。我有办法解决这个问题吗


提前感谢。

我对CAB文件没有经验,但我觉得奇怪的是,您的部分指向的是MSI文件,而不是DLL、OCX或其他文件。它将为该类ID注册哪个文件?另见。甚至可能MSI正在进行实际的组件注册?根据我的研究,MSI安装程序在设备上注册ActiveX控件,而无需从Windows手动使用Regasm.exe。我在visual Studio 2008中完成了这一切。如果你有什么发现,请告诉我