Inno Setup 制作安装包问题总结
没有生成桌面快捷键
安装完成后,选择运行程序报错
可以参考以下文章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..https://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(CurUninstallStehttps://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: Varihttps://blog.csdn.net/jg\_csdn/article/details/124726424?spm=1001.2014.3001.5501
[Files] 段编译,提示文件不存在
首先确定本地文件路径,查看Source是否包含通配符,如果包含通配符Flags必须包含recursesubdirs属性
recursesubdirs :告诉编译器或安装程序同时也搜索 Source 目录下子目录中的源文件名/通配符。
如以下格式:
未卸载,第二次重复安装没有路径向导设置
[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
Source: "E:\ucrtbased.dll"; DestDir: "{sys}";Flags: 64bit;Check: IsWin64
Source: "E:\vcruntime140d.dll"; DestDir: "{sys}";Flags: 64bit;Check: IsWin64
Source: "E:\ucrtbased.dll"; DestDir: "{sys}";Check: not IsWin64
Source: "E:\vcruntime140d.dll"; DestDir: "{sys}";Check: not IsWin64
Flags: 64bit
当在 Source 和 DestDir 参数使用时,确保 {sys} 常量映射到 64 位系统目录,如果不加Flags: 64bit在64为上安装时,文件会被安装到C:\Windows\SysWOW64文件夹里。
Check:IsWin64
如果系统运行于提供 Inno Setup 执行 64 位安装任务所需的 API 支持的 64 位版本的 Windows 则返回 True。如果返回 False,你不能使用任何 Inno Setup 的只能用于 64 位的功能。
在使用 64 位功能前先检查,避免在 32 位 Windows 运行时出现异常
修改卸载程序名称
procedure CurStepChanged(CurStep: TSetupStep);
var
uninspath, uninsname, NewUninsName, MyAppName: string;
begin
if CurStep=ssDone then
begin
// 指定新的卸载文件名(不包含扩展名),请相应修改!
NewUninsName := 'uninstall_upgrade';
// 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
MyAppName := 'upgrade';
// 以下重命名卸载文件
uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
// 以下修改相应的注册表内容
// {2A122AFD-55B3-4444-A1B7-D69AC4D128B9} AppId
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1') then
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{2A122AFD-55B3-4444-A1B7-D69AC4D128B9}_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
end;
end;
end;
win10开始菜单没有卸载软件快捷键
问题描述:程序第一安装是有的,安装了其他的程序,导致已安装程序的卸载快捷键消失。
解决思路,注意到使用inno setup 制作的安装包,默认卸载程序都是unins000.exe,会不会有冲突。所以尝试一下两种方式
一,修改卸载程序名称
参考前一个问题
二、将卸载程序在icon中设置两次
还没有评论,来说两句吧...