我正在部署包含多个C++ COM的MSI。我们正在适应它在Windows 7/Server 2008上工作,出于某种原因,自注册COM不再有效。因此,我将它们全部更改为COMRelativePath。无法使用Visual Studio部署获得某些COM注册
这似乎奏效了,但其中3个组件神秘地没有注册。在安装程序的构建我看到这则消息对于那些没有登记:
警告:无法创建名为“ComponentThatWontRegister.dll”
做完了广泛的研究文件的注册信息,并想尽一切工作围绕,我无法克服这一点。我已经尝试设置RegCap.exe和devenv以各种兼容模式运行并提升为管理员级别。我试过Visual Studio 2010,同样的问题。
奇怪的是,大部分COM注册都很好,它们都是以相同的方式设置的;这只是少数有这个问题。我已经逐项浏览了COMs,并且找不到任何会使一个失败而另一个成功的事情。另外,在我使用regsvr32注册com的同一系统上,只要我以管理员身份运行命令提示符,它就可以工作。
尝试从命令提示符(以管理员身份)运行msi并让我知道发生了什么。在Windows 7中存在与UAC冲突的MSI问题,这可能会导致您的问题。 – KreepN
不确定你在这里是什么意思;问题在于,由于显示的错误,COM注册信息在MSI生成之后甚至不在MSI中。或者你是否要在将它切换到COMSelfReg之后执行此操作? – jpwkeeper
将其切换到COMSelfReg之后。 – KreepN