2009-11-11 100 views
1

我正在嘗試修復使用Visual Studio 2005安裝項目的現有應用程序。VS 2005安裝 - HKCU

,我們要求它在有限的用戶帳戶XP的工作,我們的應用程序是用C#爲.NET 2.0。

它在安裝過程中寫入鍵進入HKCU,但跳過了選擇UI一步「安裝的每個人」對應的是「只有我」。所以它默認爲每個人都安裝。

問題是,您在管理員帳戶上安裝,然後切換到受限帳戶。這使得它執行失敗的修復安裝。如果我轉到任何其他管理員帳戶,它都可以正常工作。

我的問題是,它在哪兒把這些鍵HKCU的受限帳戶試圖讀/寫?

是否有HKEY_USERS一個神奇的地方,適用於「每個人」?我不明白它是如何工作的,從管理員用戶到另一個管理員用戶。爲了測試這個理論,我在有限的用戶手動輸入了HKCU中的密鑰,並且它仍然試圖修復。

如果我知道這個「所有人」密鑰在哪裏,我只能通過自定義操作授予對所有用戶的完全訪問權限,因此受限帳戶不會強制進行修復安裝。

回答

1

有沒有這樣的事,作爲一個「大家」 HKCU關鍵。 HKCU是,每用戶。 Windows安裝程序將一直嘗試修復,除非每個人都可以訪問原始MSI文件,否則它可能會失敗。

基本上拇指我公司始終遵循的規則是安裝過程中從來沒有寫入HKCU,而不是我在安裝過程中寫入HKLM,並在第一時間運行應用程序的話,我創建相關HKCU鍵。

查看我對SO問題Launching a program in different creds or HKCU and installers的回答,並檢出ActiveSetup作爲編寫相關HKCU配置的可行替代方案。

+0

我們自己找到了這個解決方案。我們將首先爲每個用戶從文件中提取設置並將它們放入HKCU。如果它是一個新的應用程序,我們將完全避免使用註冊表,只使用vista-uac-safe應用程序數據文件夾中的文件。 – jonathanpeppers 2009-11-12 14:42:59

1

HKEY_USERS\.DEFAULT\ 

你正在尋找的分支?

+0

這是系統帳戶,我不認爲我的設置正在系統下運行。這裏是一個鏈接:http://blogs.msdn.com/oldnewthing/archive/2007/03/02/1786493.aspx – jonathanpeppers 2009-11-11 22:14:50