Inno Setup 制作安装包问题总结

蔚落 2023-09-29 14:28 160阅读 0赞

没有生成桌面快捷键

安装完成后,选择运行程序报错

可以参考以下文章Inno Setup 制作exe安装包_哭哭啼的博客-CSDN博客Inno Setup 制作exe安装包前言:使用Inno Setup制作exe安装包,首先需要一个可运行的exe程序,然后下载Inno Setup工具,最后才是制作安装包的过程。exe主程序此处我使用Inno Setup自带的MyProg.exe,安装好Inno Setup工具,就能找到。如图:双击效果:下载Inno Setup工具http://链接:https://pan.baidu.com/s/12NwKgpRxgei8agj5PLERcw 提取码:xx11h..favicon32.icohttps://blog.csdn.net/jg\_csdn/article/details/124693110?spm=1001.2014.3001.5501

Inno setup 删除指定文件

Inno setup 删除指定文件_哭哭啼的博客-CSDN博客Inno setup 删除指定文件方式一方式二方式一[UninstallDelete];删除文件,{app}:安装目录Type: files; Name: “{app}\vcruntime140d.dll”;Type: files; Name: “{app}\ucrtbased.dll”;;删除文件夹Type: filesandordirs; Name: “{app}“;方式二[code]procedure CurUninstallStepChanged(CurUninstallStefavicon32.icohttps://blog.csdn.net/jg\_csdn/article/details/124715229?spm=1001.2014.3001.5501

Inno setup 安装卸载前校验工作

Inno setup 安装卸载前校验工作_哭哭啼的博客-CSDN博客安装前判断是否已安装[Registry]Root: HKCU; Subkey: “Software\PowerIDE_Install”; Flags: uninsdeletekey[code]//检查进程是否运行function IsAppRunning(const FileName : string): Boolean;var FSWbemLocator: Variant; FWMIService : Variant; FWbemObjectSet: Varifavicon32.icohttps://blog.csdn.net/jg\_csdn/article/details/124726424?spm=1001.2014.3001.5501

[Files] 段编译,提示文件不存在

首先确定本地文件路径,查看Source是否包含通配符,如果包含通配符Flags必须包含recursesubdirs属性

recursesubdirs :告诉编译器或安装程序同时也搜索 Source 目录下子目录中的源文件名/通配符。

如以下格式:

3fb0e1cab371485bae4c36a3b6e8d984.png

未卸载,第二次重复安装没有路径向导设置

[Setup] 节点下添加UsePreviousAppDir=no

卸载程序变更安装位置

[Setup] 修改UninstallFilesDir的值,如:

UninstallFilesDir=C:\upgrade_uninstall

安装时默认安装目录设置

如果你使用:

DefaultDirName={sd}\MYPROG
在安装程序中,这将显示:
C:\MYPROG
如果你使用:

DefaultDirName={pf}\My Program

在安装程序中,这将显示:
C:\Program Files\My Program

添加文件到C:\Windows\System32

  1. Source: "E:\ucrtbased.dll"; DestDir: "{sys}";Flags: 64bit;Check: IsWin64
  2. Source: "E:\vcruntime140d.dll"; DestDir: "{sys}";Flags: 64bit;Check: IsWin64
  3. Source: "E:\ucrtbased.dll"; DestDir: "{sys}";Check: not IsWin64
  4. Source: "E:\vcruntime140d.dll"; DestDir: "{sys}";Check: not IsWin64

Flags: 64bit

当在 Source 和 DestDir 参数使用时,确保 {sys} 常量映射到 64 位系统目录,如果不加Flags: 64bit在64为上安装时,文件会被安装到C:\Windows\SysWOW64文件夹里。

Check:IsWin64

  1. 如果系统运行于提供 Inno Setup 执行 64 位安装任务所需的 API 支持的 64 位版本的 Windows 则返回 True。如果返回 False,你不能使用任何 Inno Setup 的只能用于 64 位的功能。
  2. 在使用 64 位功能前先检查,避免在 32 Windows 运行时出现异常

修改卸载程序名称

  1. procedure CurStepChanged(CurStep: TSetupStep);
  2. var
  3. uninspath, uninsname, NewUninsName, MyAppName: string;
  4. begin
  5. if CurStep=ssDone then
  6. begin
  7. // 指定新的卸载文件名(不包含扩展名),请相应修改!
  8. NewUninsName := 'uninstall_upgrade';
  9. // 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
  10. MyAppName := 'upgrade';
  11. // 以下重命名卸载文件
  12. uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
  13. uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
  14. RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
  15. RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
  16. // 以下修改相应的注册表内容
  17. // {2A122AFD-55B3-4444-A1B7-D69AC4D128B9} AppId
  18. if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1') then
  19. begin
  20. RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
  21. RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
  22. end;
  23. end;
  24. end;

win10开始菜单没有卸载软件快捷键

问题描述:程序第一安装是有的,安装了其他的程序,导致已安装程序的卸载快捷键消失。

解决思路,注意到使用inno setup 制作的安装包,默认卸载程序都是unins000.exe,会不会有冲突。所以尝试一下两种方式

一,修改卸载程序名称

参考前一个问题

二、将卸载程序在icon中设置两次

dc938811a7fd43ffb3d574793235e724.png

发表评论

表情:
评论列表 (有 0 条评论,160人围观)

还没有评论,来说两句吧...

相关阅读