2012-11-12 98 views
3

Advanced Installer版本(8.9)我開發了一個簡單的.Net安裝程序類。它的特殊功能是基於* ini文件提供特定的用戶界面。據我所知高級安裝程序不支持這樣的事情。糾正我,如果我錯了!但這不是我的問題的重點。 根據用戶的選擇,我的安裝程序類在註冊表中合併了一個特定的* .reg文件。下面是我使用的這個目標代碼:高級安裝程序損壞的註冊表路徑

Process proc = new System.Diagnostics.Process(); 
proc.EnableRaisingEvents=false; 
proc.StartInfo.FileName="regedit.exe"; 
proc.StartInfo.Arguments = " \"" + regFilePath + "\""; 
proc.StartInfo.UseShellExecute = true; 
proc.Start(); 

所以,如果我有那種

Windows Registry Editor Version 5.00 
[HKEY_CURRENT_USER\Software\NIKOLETA] 
... 

一個sample.reg文件時導入我的安裝程序類在Windows安裝(建於VS ) - sample.reg合併正常,NIKOLETA鍵出現在HKEY_CURRENT_USER \ SOFTWARE下。 不幸的是,當安裝程序類導入高級安裝程序 - sample.reg再次合併,但不在所需的地方,但NIKOLETA鍵出現在HKEY_USERS.DEFAULT \ SOFTWARE。 我被告知HKEY_USERS的高級安裝程序的默認路徑是HKEY_USERS.DEFAULT \ Software [Manufacturer] [ProductName]。但是如何以及爲什麼它會影響.Net安裝程序類? 我怎麼能圍繞這個問題,所以我的* .reg文件要正確合併? 謝謝您的期待!

回答

4

HKEY_USERS.DEFAULT它實際上是本地系統帳戶的配置文件,因此如果您的自定義操作被設置爲延遲運行且不存在任何模擬,那麼註冊表項可以在那裏重定向,這意味着它設置爲在SYSTEM帳戶下運行具有完整的管理權限。另外,如果您只是想根據條件創建某個註冊表條目,則可以從註冊表頁面創建條目,並在組織頁面的組件頁面上爲其組件頁面上的組件頁面設置安裝條件。

相關問題