2016-01-18 161 views
1

我正在使用Qt-Installer-Framework爲我的應用程序創建安裝程序。一切正常,除了一件事情:QtIFW總是創建註冊表項

如果我將它安裝到任何位置,但C:\Program Files\MyApp,安裝程序將不會創建Programs and Features註冊表項!

有沒有辦法告訴安裝程序總是這樣做?

編輯:
嘗試vairous不同的組合之後,我現在知道問題出在哪裏來自:

如果我嘗試安裝爲當前用戶只(在AllUsers變量設置爲false),它將始終工作並在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}中創建一個條目。

但是,如果我爲所有用戶安裝,它將嘗試在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}中創建一個密鑰。如果安裝程序必須在安裝期間提升它的操作(因爲我選擇了一個我需要管理員權限的目錄),這隻會起作用。

所以,錯誤是:安裝程序不會提升自己創建「全局」註冊表項,從而無法創建它。任何想法如何解決它?

+0

Windows版本? – Zen

+0

這是一臺Windows 10機器 – Felix

回答

0

這裏的link它已經回答了這個問題。

以下行添加到您的組件的包的xml文件:

@ < RequiresAdminRights>真</RequiresAdminRights> @

而且在腳本文件中使用此行:

@Component .addElevatedOperation(「Execute」,「someCommand」); @

而不是

@ component.addOperation(「Execute」,「someCommand」); @

+0

我知道這個。但是,我不希望始終以管理員身份運行,只有在爲所有用戶安裝安裝程序(在運行時使用自定義頁面進行確定)時才提升。此外,我沒有創建任何操作來添加註冊表項。這由安裝程序自動完成。 – Felix