我正在使用Inno Setup來創建安裝程序。我希望安裝程序自動卸載以前安裝的版本,而不是覆蓋它。我怎樣才能做到這一點?
3 回答
侃侃無極
TA貢獻2051條經驗 獲得超10個贊
在給定AppId(即您AppID在[Setup]-section中使用的值)時,您應該能夠從注冊表中讀取卸載字符串。它可以在下面找到Software\Microsoft\Windows\CurrentVersion\Uninstall\{AppId}\(可以是HKLM或者HKCU,最好檢查兩者){AppId}應該用你使用的實際值代替。查找UninstallString或QuietUninstallString值并使用該Exec函數從InitializeSetup()事件函數運行它。
更新:使用[Run]-section條目刪除了非工作替代解決方案{uninstallexe}- 感謝所有指出這一點的評論者!
臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
如果您“只想刪除舊圖標”(因為您的圖標已更改/更新),您可以使用:
; attempt to remove previous versions' icons
[InstallDelete]
Type: filesandordirs; Name: {group}\*;
這是在“安裝開始時”運行,所以基本上刪除舊圖標,完成后仍然會在那里安裝新圖標。
我只是在每次安裝時執行此操作“萬一有任何改變”圖標明智(無論如何都會重新安裝)。
- 3 回答
- 0 關注
- 2147 瀏覽
添加回答
舉報
0/150
提交
取消
