我正在部署包含多個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