[英]How to get the uninstaller name in Inno Setup
我有一個具有不同變體的項目,它們都安裝到相同的位置,例如C:\\ABC\\
。 這里的卸載程序被命名為 unins000、unins001.. 等等。 我在網上搜索過以更改卸載程序名稱,並且沒有更改卸載程序名稱的固有方法。
我有一個解決方法,通過它我使用[Run]
部分將unins000.exe
重命名為我選擇的名稱。 當只有一個卸載程序時,這對項目文件夾非常有效。 但是,就我而言,我不知道卸載程序名稱。
有人可以建議我獲取卸載程序名稱的方法嗎? 我將相應地將名稱放在我的代碼中。
請不要建議我尋找時間戳。 這將不是一個可接受的解決方案。
提前致謝。
Inno Setup 不提供任何方式讓您命名(或重命名)卸載程序。
另請注意,當您手動重命名卸載程序時(就像您正在做的那樣),您會在控制面板的添加或遠程應用程序中中斷對卸載程序的引用。 不要那樣做。
另一個問題是,當您稍后升級時,新安裝程序將找不到以前安裝程序的日志,也無法合並它們。 因此,將來的卸載不會完全刪除該應用程序。
請參閱 Inno Setup 文檔中的附加到現有卸載日志。
用戶不應通過轉到安裝文件夾並執行卸載程序來卸載應用程序。 用戶應轉到控制面板並按名稱選擇應用程序。
無論如何,卸載程序按順序編號,因此您可以選擇編號最高的卸載程序。
我在下面添加了我用來實現我想要的代碼。 基本上,我現在所做的是為每個變體創建一個單獨的文件夾,在其中存儲單個卸載程序(因為我無法獲得需要重命名的卸載程序)。
項目結構現在是
C:\\ABC\\Uninst\\<Variant-1>\\<variant1-uninstaller>
C:\\ABC\\Uninst\\<Variant-2>\\<variant2-uninstaller>
添加[Run]
部分,這會將卸載程序名稱更改為所需的任何名稱。 此外,HKLM 中的注冊表項將被修改,以便快捷方式和控制面板可以毫無問題地卸載程序。
`[Run]
;First rename the uninstaller files, then modify in registry
; /C : run CMD, execute command, then close the CMD.exe
Filename: {cmd}; Parameters: "/C ren ""{app}\Uninst\unins000.exe"" ""Uninstall_{#ApplicationName}.exe"""; Flags: RunHidden WaitUntilTerminated
Filename: {cmd}; Parameters: "/C ren ""{app}\Uninst\unins000.dat"" ""Uninstall_{#ApplicationName}.dat"""; Flags: RunHidden WaitUntilTerminated
; REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]
; /F : Force overwrite
Filename: REG; Parameters: "ADD ""HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#AppNameInReg}_is1"" /V ""UninstallString"" /T ""REG_SZ"" /D ""\""{app}\Uninst\Uninstall_{#ApplicationName}.exe"""" /F"; StatusMsg: Flags: RunHidden WaitUntilTerminated
Filename: REG; Parameters: "ADD ""HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#AppNameInReg}_is1"" /V ""QuietUninstallString"" /T ""REG_SZ"" /D ""\""{app}\Uninst\Uninstall_{#ApplicationName}.exe /SILENT"""" /F"; Flags: RunHidden WaitUntilTerminated
在[Setup]
部分添加以下行UninstallFilesDir={app}\\Uninst\\
這將在Uninst
文件夾中創建unins000.exe
。
請注意,我已經解決了我的問題。 我為任何想做類似事情的人發布了我的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.