2011-03-23 256 views
0

我使用WIX 3.5爲我的應用創建了安裝程序。安裝程序第一次正常工作。但卸載應用程序後,然後再次重新安裝在同一臺機器上,我得到以下錯誤信息:無法打開密鑰:HKEY_CURRENT_USER Software Classes MyAppAssembly

「無法操作鍵:HKEY_CURRENT_USER \ Software \ Classes \ XMyapp ... \ myapp。驗證您有足夠的權限訪問該密鑰或聯繫您的支持人員。「

在安裝過程中,我的msi應該安裝此程序集。卸載後,我看到這些註冊表的enntries被刪除...這是相同的,它應該在第一次安裝。

我很困惑,爲什麼安裝程序試圖打開這個註冊表項?

我創建了2個使用WIX 3.5 for Windows 7和Windows Server 2008的安裝程序,但從未發現此問題。這僅適用於Windows XP SP3盒子。

請對此問題提出任何解決方案。

以下是Heat.exe生成的.wxs文件的部分代碼。我收到錯誤TimeLimitPlugin類下面

<Directory Id="dirE6F61FBBE33D607D42934C479509E1A7" Name="bin"> 
    <Component Id="cmp8862A7C3908D1BE33925BE0E72222A47" Guid="{EC21FA8F-ADAE-4608-8CB0-49B9EE7F5A37}"> 
    <File Id="fil143DAAA17C8B9650C00B50AB55BE85D3" KeyPath="yes" Source="..\OneApp31_deploy\Debug\bin\AjaxControlToolkit.dll" /> 
    </Component> 
    <Component Id="cmp120CF12CD801404A02CE3906AD63E471" Guid="{46428AEB-4AD5-4230-A0DD-284C35682C0C}">      
    <Class Id="{0155BEAB-D46E-3EC9-9535-263A90812041}" Context="InprocServer32" Description="TimeLimitPlugin" ThreadingModel="both" ForeignServer="mscoree.dll"> 
     <ProgId Id="TimeLimitPlugin" Description="TimeLimitPlugin" /> 
     </Class> 

謝謝!

+0

什麼版本的WiX?卸載後是否提示重新啓動計算機?嘗試重新安裝之前,您是否嘗試重新啓動機器? – 2011-06-07 08:28:37

回答

0

您可能有每個用戶包(Package/@ InstallScope =「perUser」而不是Package/@ InstallScope =「perMachine」)。當您安裝Class元素正在寫入HKCU CLSID註冊位置。我懷疑這是導致問題的確切代碼段,但在您的包中有一些其他註冊。

相關問題