Wix失败的.NET COM互操作部署

Wix失败的.NET COM互操作部署,.net,com,wix,heat,.net,Com,Wix,Heat,我正在为Internet Explorer开发.NET BandObject工具栏。我在CodeProject()上完成了这个示例,一切都很好,我用gacutil和regasm测试了工具栏,这很有效。然后我开始使用Wix来测试实际部署并构建msi文件,这意味着切换到Heat 最初,我为各种dll创建了片段,在手动将属性添加到各种wxs文件后,效果良好。然而,为了进一步为部署做准备,我最终重命名了项目和dll文件名,从samples 2 dll更改了GUID,随后,我还尝试升级主版本号。更改了dl

我正在为Internet Explorer开发.NET BandObject工具栏。我在CodeProject()上完成了这个示例,一切都很好,我用gacutil和regasm测试了工具栏,这很有效。然后我开始使用Wix来测试实际部署并构建msi文件,这意味着切换到Heat

最初,我为各种dll创建了片段,在手动将
属性添加到各种wxs文件后,效果良好。然而,为了进一步为部署做准备,我最终重命名了项目和dll文件名,从samples 2 dll更改了GUID,随后,我还尝试升级主版本号。更改了dll后,我还使用Heat重新生成了wxs文件,手动添加了必要的属性。但是,现在工具栏不再加载到IE中,即使该选项已存在。它默默地失败了

在检查注册表项时,使用OLEVIEW.exe,我可以创建旧项目dll的实例,并访问它在gacutil和regasm中注册的COM接口。但是,Wix安装的文件无法加载,错误为:

CoGetClassObject failed.
The system cannot find the file specified.
severity: SEVERITY_ERROR, facility: FACILITY_WIN32 ($80070002)
我怀疑这是因为新的COM对象由于某种原因没有被Wix或msi安装过程正确注册。这是因为在OLEVIEW中比较新旧dll时,新dll的注册表项形式如下:

InprocServer32[CodeBase]=file///C:\Release\MyProject.dll
--1.0.4279.39243[CodeBase]=file///C:\Release\MyProject.dll
旧COM对象没有这些行中的任何一行。这表明,即使它已安装到GAC,但尚未正确注册。更让人困惑的是,以前可以正常工作的旧msi安装文件在安装时也会失败(所有以前的Wix版本都是先删除的)

我不知所措。希望有人能了解情况

致以最良好的祝愿, 丹尼尔