首页 > 解决方案 > 在 Inno Setup 创建的 exe 文件上,所有程序文件夹未显示 Ion

问题描述

我正在使用 Inno Setup,并且多年来一直使用它没有任何问题。

我没有在“所有程序”中看到应用程序上的图标。

桌面快捷方式显示图标,程序和功能列表显示图标。

Beakout 和 CardPrinter 与 Inno Setup 一起安装。

我尝试了对 Inno Setup 文件的各种更改,但没有得到肯定的结果。

问题是任何人都可以看到 Inno Setup 语法可能有什么问题吗?

uninstall.exe 文件正确显示图标。

所有程序

AppName=CheckBook
AppVersion=1.5
AppPublisher=Pharmacy Solutions
DefaultDirName=C:\Users\Dwight\Documents\A A A A VS Apps\CheckBook
DisableDirPage=yes
DisableProgramGroupPage=yes
OutputDir="C:\Users\Dwight\Documents\A A A A VS Apps"
OutputBaseFilename=SetupCheckBook
SetupIconFile=C:\Users\Dwight\source\repos\CheckBook\CheckBook\cb.ico
Compression=lzma
SolidCompression=yes

UninstallDisplayIcon=C:\Users\Dwight\source\repos\CheckBook\CheckBook\cb.ico

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Users\Dwight\source\repos\CheckBook\CheckBook\bin\Debug\CheckBook.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Dwight\source\repos\CheckBook\CheckBook\cb.ico";DestDir:"{app}";Flags:ignoreversion
Source: "C:\Users\Dwight\source\repos\CheckBook\CheckBook\bin\Debug\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Dwight\source\repos\CheckBook\CheckBook\bin\Debug\x64\SQLite.Interop.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Dwight\source\repos\CheckBook\CheckBook\bin\Debug\x86\SQLite.Interop.dll"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\CheckBook"; Filename: "{app}\CheckBook.exe" 
Name: "{commondesktop}\CheckBook"; Filename: "{app}\CheckBook.exe"; Tasks: desktopicon ; IconFilename: "{app}\cb.ico"


[Run]
Filename: "{app}\CheckBook.exe"; Description: "{cm:LaunchProgram,CheckBook}"; Flags: nowait postinstall skipifsilent

我将 [Icons] 代码更改为这种格式,现在唯一不显示 cb.ico 的项目是 CheckBook.exe 文件

[Icons]
Name: "{commonprograms}\CheckBook"; Filename: "{app}\CheckBook.exe";Tasks: desktopicon ; IconFilename: "{app}\cb.ico"  
Name: "{commondesktop}\CheckBook"; Filename: "{app}\CheckBook.exe"; Tasks: desktopicon ; IconFilename: "{app}\cb.ico"

该问题已关闭,并声明提供的链接回答了该问题。情况并非如此,该链接已被探索并且未能产生预期的结果。我正在尝试将图标附加到 CheckBoo.exe。因此,关闭问题并参考旧帖子并不能提供所需的答案 FWIW

标签: vb.netinno-setup

解决方案


UninstallDisplayIcon指令需要已安装系统的本地文件,而不是源系统。
如果您将其更改为:

UninstallDisplayIcon={app}\cb.ico

它应该可以正常工作。该文档显示了使用该常量
的示例。{app}从文档:

描述:

这使您可以指定要为“添加/删除程序控制面板”小程序中的“卸载”条目显示的特定图标文件(可执行文件或 .ico 文件)。文件名通常以目录常量开头。

如果您指定的文件包含多个图标,您可以附加后缀“,n”来指定图标索引,其中 n 是从零开始的数字索引。

如果此指令未指定或为空,Windows 将自行选择一个图标,这可能不是您喜欢的那个。

Examples:
UninstallDisplayIcon={app}\MyProg.exe
UninstallDisplayIcon={app}\MyProg.exe,1

推荐阅读