没有生成桌面快捷键
安装完成后,选择运行程序报错
Inno setup 删除指定文件
Inno setup 安装卸载前校验工作
[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中设置两次