我正在使用CPack NSIS生成器來創建安裝程序。但是,每次我發佈新版本時,我們的用戶都會在不卸載舊版本的情況下運行新的安裝程序(這是可以理解的)。如何使CPack(NSIS)正確升級以進行新安裝?
是否可以讓安裝程序覆蓋所有現有的文件?如果沒有,那麼是否有辦法阻止安裝,如果它已經安裝?
此外,我們的CPack調用被另一個腳本包裹,作爲最後的手段,我可以破解/重新配置project.nsi文件,以便它執行上述操作之一?
我正在使用CPack NSIS生成器來創建安裝程序。但是,每次我發佈新版本時,我們的用戶都會在不卸載舊版本的情況下運行新的安裝程序(這是可以理解的)。如何使CPack(NSIS)正確升級以進行新安裝?
是否可以讓安裝程序覆蓋所有現有的文件?如果沒有,那麼是否有辦法阻止安裝,如果它已經安裝?
此外,我們的CPack調用被另一個腳本包裹,作爲最後的手段,我可以破解/重新配置project.nsi文件,以便它執行上述操作之一?
我的解決辦法是單獨維護NSIS文件,原來是沒有多少額外的努力。
您必須編輯CPack使用的NSIS模板。你可以在你的cmake安裝文件夾/ Modules/NSIS.template.in中找到它。
還有,某個地方,也許在常規部分的開頭,你可以把: SetOverwrite上
這應該做的伎倆,雖然我沒有嘗試一下的機會。
有關SetOverwrite的參數的詳細信息閱讀NSIS腳本manual