我正在使用Inno安裝程序創建安裝程序和更新程序。
我想更新不得不爲一個服務和一個正常的過程(取決於我是否運行安裝程序作爲管理員或不上)運行的能力。
我創建了我的應用程序,它具有作爲服務和正常進程運行的能力,所以我可以假設這在inno setup中也是可以實現的。
我可以創建一個類似服務和正常進程的安裝程序嗎?我可以將Inno Setup作爲服務和正常流程使用嗎?
回答
Inno安裝程序不可能運行作爲服務,因爲它不是服務應用程序。
它是可能有一個服務進程啓動一個Inno安裝程序從非用戶上下文到例如。自動升級。但是這樣做需要非常小心的關注。
例如,你必須:
啓動與
/VERYSILENT /SUPPRESSMSGBOXES /NORESTART
安裝程序可以隱藏所有標準UI。使用
AppMutex
(在Global
命名空間中使用相應的互斥鎖)確保安裝程序等待直到服務在啓動安裝程序後自行終止。確保啓動過程已經提升到管理員(注意,這是一個安全隱患,因爲它意味着服務正常運行期間使用管理員權限運行)。
確保在啓動安裝程序之前,該服務使得非常可靠它正在運行合法的升級包而不是某些惡意軟件。強烈建議數字簽名驗證。
確保腳本不使用
MsgBox
或以其他方式顯示UI。 (如果需要的交互式安裝使用SuppressibleMsgBox
。)
TLDR:而你可以,你不應該。很難做到正確,打開安全漏洞非常容易。讓用戶自己下載並運行安裝程序。
你可能想使用['CheckForMutexes'功能(http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_checkformutexes)(中環),以等待互斥體,而不是['AppMutex'指令](http://www.jrsoftware.org/ishelp/index.php?topic=setup_appmutex)。 'AppMutex'會中止安裝程序(靜默模式)。如果服務未在安裝程序進入互斥檢查之前退出(您幾乎不能保證),安裝程序將不會運行。 –
我的目標是創建一個靜音自動更新程序。當沒有用戶登錄時,作爲服務運行的應用程序是否有可能自己調用更新程序?我知道,當沒有用戶登錄服務可以運行的,所以我認爲我還需要一個upater是一種服務,所以它可以在不登錄的任何用戶進行更新。 – yuval
我還需要從高架源運行更新,因此UAC不會出現。如果我從服務調用更新程序,UAC是否會彈出? – yuval
- 1. 在Inno Setup中可以使用regexp嗎?
- 2. 不要使用inno setup安裝服務
- 3. 使用Inno Setup升級Windows服務
- 4. 可以定義Inno Setup的
- 5. 我可以使用WorkflowApplication類運行WCF工作流服務嗎?
- 6. 可以在Inno-Setup中使用MSM(合併模塊)文件嗎?
- 7. 使用inno setup可以上傳文件嗎?
- 8. 用Inno Setup更新DLL服務器
- 9. WCF工作流服務可以將工作流類型作爲參數嗎?
- 10. Inno Setup的 - 正確使用[類型],[成分]和[任務]
- 11. 我可以在無人蔘與的工作流程中使用OAuth2服務嗎?
- 12. 使用Inno Setup的
- 13. Inno Setup:使用JSON
- 14. 你知道我可以在C#中使用的Inno Setup封裝嗎?
- 15. 在使用Inno Setup進行安裝之前,我可以編輯文件嗎?
- 16. 我可以使用我的網絡服務器作爲郵件服務器嗎?
- 17. 我可以使用Node.js作爲服務器端語言嗎
- 18. 我可以使用Apache服務器作爲本地網絡嗎?
- 19. 我可以使用Heroku作爲Python服務器嗎?
- 20. 我可以使用restful作爲網站數據服務嗎?
- 21. 我可以使用iPhone或iPad設備作爲服務器嗎?
- 22. 我可以使用spark作爲服務嗎
- 23. 我可以使用Tails作爲SOCKS代理服務器嗎
- 24. 我可以使用Inno Setup安裝程序中的腳本和命令行參數來選擇#include路徑嗎?
- 25. 我可以將我的電腦用作Java服務器嗎?
- 26. 我可以將Python腳本作爲服務運行嗎?
- 27. 可以使用服務來控制Android中的UI流程嗎?
- 28. 我可以在Windows XP中作爲服務啓動程序嗎?
- 29. 我可以使用iCloud作爲後端服務器和iOS應用嗎?
- 30. 工作流程/工作流程服務組合?如何在'正常'工作流上使用接收活動?
是什麼意思*「希望更新不得不作爲服務運行的能力。」 *?爲什麼你需要將它作爲服務運行?該服務會做什麼? –