2009-10-23 72 views
0

在我的應用程序安裝項目上,我試圖在HKLM/Software或HKCU/Software下設置註冊表項,具體取決於用戶是選中「All Users」還是「Just我「在安裝過程中。在VS2008的安裝項目中使用條件字段

對於這個效果,我一直在嘗試使用ALLUSERS屬性,並檢查它反對1或 「」,分別爲:

  • ALLUSERS = 1
  • ALLUSERS = 「」

我將AlwaysCreate屬性的鍵設置爲False。然而,當安裝HKLM/Software/my_key和HKCU/Software/時,my_key被創建。

我錯過了什麼?

更新:我一直喜歡封閉在方括號ALLUSERS,使傳遞的財產或使用ALLUSERS其他替代品= 1而不是=「」。無濟於事。我現在放棄了這一點,並且只是在這兩種情況下在HKLM下創建。但如果有人有答案,我會很感激。

+0

如果有人能改善這個問題,請開除。我覺得很奇怪,到目前爲止我還沒有得到任何答案。要麼我偶然發現了一個罕見的,沒有人知道的廣泛使用的功能,或者更可能我沒有問這個問題。 – 2009-10-25 00:16:32

+0

-anyone + anyway – 2009-10-25 00:17:02

回答

2

我對Windows Installer的理解是,這種行爲被抽象掉了,所以開發人員不需要擔心它。也就是說,如果未設置ALLUSERS屬性,則安裝包將「自動」將註冊表項置於HKCU而不是HKLM中。請參閱MSDN上的文檔http://msdn.microsoft.com/en-us/library/aa367559%28VS.85%29.aspx。因此,聽起來好像您正嘗試通過安裝項目來重新實現此功能;我建議根據ALLUSERS屬性刪除條件。

作爲一個側面說明,AlwaysCreate屬性控制在什麼情況下將創建註冊表項,特別是與密鑰的內容相關。通過將其設置爲false,您說「如果沒有任何子鍵或值,則不要創建該鍵」。將其設置爲true意味着「創建此密鑰,不管它是否具有任何子密鑰或值」。文檔再次可在MSDN上獲得http://msdn.microsoft.com/en-us/library/e1t11k72%28VS.100%29.aspx

+1

雖然最初並沒有解決我的問題,但是你暗示我可能會出錯。謝謝你。問題與此有關。我做錯了什麼。我正在使用HKLM和HKCU蜂房,並試圖有條件地設置密鑰。但是我完全錯過了安裝項目註冊表編輯器的最後一項。一個顯眼的「用戶/機器蜂巢」。這就是我應該放置鑰匙的地方,而不是直接置於HKLM或HKCU之下。傻我。 – 2009-10-26 13:11:05

相關問題