2012-09-06 79 views
0

Windows安裝具有智能功能來自動決定是否將註冊表值存儲HKEY_CURRENT_USERHKEY_LOCAL_MACHINE下,本地計算機的註冊表(在維克斯使用Root="HKMU")。寫在自定義操作(有條件)

我需要在安裝過程中編寫一些複雜的註冊表項,所以我爲此創建了一個自定義操作。取決於是否設置了ALLUSERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINE將是自定義操作使用的位置。

不幸的是,我不得不意識到,即使在安裝ALLUSERS時,自定義操作也沒有寫入HKEY_LOCAL_MACHINE所需的權限,除非以管理員身份啓動安裝。我如何獲得自定義操作以寫入HKEY_LOCAL_MACHINE,但仍保留每個用戶的安裝選項?

回答

1

不要使用自定義操作,您將失去Windows安裝程序的所有其他智能功能,例如ugprades,回滾,卸載等。

而是將註冊表值放入其自己的組件中,並在組件上添加條件。如果條件評估爲true,則組件及其關聯的註冊表資源將被安裝。請參閱Privileged property。這聽起來像你正在尋找你的評價。

+0

感謝您的諮詢!我現在已經儘可能地將其移動到有附加條件的安裝程序組件中。這給我留下了一個對Windows安裝程序不可行的要求,所以我有一個自定義操作只能在每臺計算機上執行。 –

+0

有時您不想回滾註冊表項,例如之前已經安裝了該軟件的指示。 – Pierre

+0

然後,這將是一個永久性組件。 –