当前位置:  开发笔记 > 小程序 > 正文

更改Inno-Setup卸载程序的默认名称以避免命名冲突

如何解决《更改Inno-Setup卸载程序的默认名称以避免命名冲突》经验,为你挑选了4个好方法。

我需要在同一目录中安装几个安装程序,因此它与inno安装卸载程序名称unins000.exeunins000.dat

有没有办法更改Inno-Setup卸载程序的默认名称?



1> Sertac Akyuz..:

编号'unins'在可执行文件GenerateUninstallInfoFilename源的'install.pas'的'procedure' 中的可执行文件,数据和msg文件的名称生成过程中进行了硬编码.

GenerateFilenames 子程序有这个:

BaseFilename := AddBackslash(BaseDir) + Format('unins%.3d', [I]);
UninstallExeFilename := BaseFilename + '.exe';
..

其中'I'是一个整数,'BaseDir'是从中UninstallFilesDir可以改变的.



2> Deanna..:

当Inno检测到安装在同一目录中的不同应用程序(基于不同的AppID)时,会自动执行此操作.应该没有必要在它背后并重命名卸载程序文件.


@Magnus随机浏览文件夹的人无法分辨它们的事实并不意味着Inno会自动处理此错误。如果您是开发人员想要简化它,请在开始菜单组中添加指向“ {uninstallexe}”的快捷方式,将其指向“添加/删除程序”小程序,或设置“ UninstallDir”。Inno仍然可以设计完美地处理同一文件夹中的不同应用程序。

3> 小智..:

我自己处理了这个问题.由于Martin Prikryl指出,你不应该将卸载程序可执行文件本身移动.但是我同意让一堆编号的卸载程序放在一个目录中并且没有明显的方法来告诉哪个是哪个是不满意的.

使用Inno Setup提供的设施有一个解决方案.在该[Setup]部分:

[Setup]
...
UninstallFilesDir=Uninstall\exe\{#NAME_OF_APP}
...

然后在该[Dirs]部分:

[Dirs]
...
Name: Uninstall\exe; Attribs: hidden;
Name: Uninstall\exe\{#NAME_OF_APP}; Attribs: hidden;
...

最后,您可以创建指定的快捷方式,[Icons]这些快捷方式将始终具有相同的名称,因为您已将它们隔离在一起:

[Icons]
...
Name: Uninstall\{#NAME_OF_UNINSTALLER}; Filename: Uninstall\exe\{#NAME_OF_APP}\unins000.exe
...

这会将操作系统中的引用留给卸载程序,将可疑的可执行文件名隐藏在用户通常不会看到但仍可访问的文件夹中,并提供可以全部存在于同一文件夹中的命名描述性快捷方式.您还可以为快捷方式提供一个好的图标.为了更好的衡量,可以在\ exe目录中删除一个额外的README来解释发生了什么,以防有人得到多管闲事(他们会自然而然).



4> ElektroStudi..:

好吧,虽然它仍然不可能原生地更改卸载程序名称,然后我将在运行部分使用批处理命令重命名卸载程序并在卸载程序注册表路径中执行相同操作:

[Run]
Filename: {cmd}; Parameters: "/C Move ""{app}\unins000.exe"" ""{app}\Uninstallers\{#ApplicationName} - uninstall.exe"""; StatusMsg: Installing {#ApplicationName}...; Flags: RunHidden WaitUntilTerminated
Filename: {cmd}; Parameters: "/C Move ""{app}\unins000.dat"" ""{app}\Uninstallers\{#ApplicationName} - uninstall.dat"""; StatusMsg: Installing {#ApplicationName}...; Flags: RunHidden WaitUntilTerminated

Filename: REG.exe; Parameters: "ADD ""HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Windows 8 ContextMenu - {#ApplicationName}_is1"" /V ""UninstallString"" /T ""REG_SZ"" /D ""\""{app}\Uninstallers\{#ApplicationName} - uninstall.exe\"""" /F"; StatusMsg: Installing {#ApplicationName}...; Flags: RunHidden WaitUntilTerminated
Filename: REG.exe; Parameters: "ADD ""HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Windows 8 ContextMenu - {#ApplicationName}_is1"" /V ""QuietUninstallString"" /T ""REG_SZ"" /D ""\""{app}\Uninstallers\{#ApplicationName} - uninstall.exe\"" /SILENT"" /F"; StatusMsg: Installing {#TipName}...; Flags: RunHidden WaitUntilTerminated

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有