【问题标题】:Inno Setup: Control panel icon does not showInno Setup:控制面板图标不显示
【发布时间】:2014-01-14 13:26:35
【问题描述】:

我有一个 Inno Setup 项目。一切都很好,但我在“程序和功能”控制面板区域中看不到应用程序图标。我确实在其他地方看到了这个图标。

脚本文件确实有以下内容:

[Setup]
SetupIconFile={#MySetupImageIco}

是否需要设置其他内容才能使应用程序图标显示在“程序和功能”控制面板小程序中?我正在针对 Windows 8.1 进行测试。


更新:
基于 cmets,我尝试在我的脚本中设置:

UninstallDisplayIcon={#MySetupImageIco}

遗憾的是,这并没有在“添加/删除”又名“程序和功能控制面板”小程序中生成图标。


更新 #2:
获胜的解决方案是:

UninstallDisplayIcon={app}\{#MyAppExeName}

当然,脚本顶部必须有一个#define MyAppExeName "whatever.exe"。有趣的是,当我指定 ico 文件的路径时,我没有成功。 Windows 8 和 8.1 的 Inno Setup 需要我刚才所说的。 Windows 7 使用 UninstallDisplayIcon 并指定 ICO 的路径或不使用,只是 Windows 8 和 8.1 有点不同。

【问题讨论】:

  • 我没有关注你的问题。在我的脚本顶部,我有一个#define 语句,它定义了 ICO 文件的路径。编译器不会抱怨,也不会产生警告或错误。这是你的问题吗?
  • 啊,是的,对不起,我累了。 UninstallDisplayIcon 很可能是您正在寻找的(如果我们谈论的是“添加/删除程序”控制面板小程序)。
  • 您需要更具体。你在说什么“控制面板图标”?您的应用程序是控制面板小程序吗?还是您指的是“添加/删除程序”图标?
  • 我将 UninstallDisplayIcon 添加到项目中,并会尽快尝试,希望在星期一之前。在我的家用 PC 上执行虚拟 Windows 框时遇到问题。似乎我的 Acer i7 处理器能够支持 Virtual Box,但不能。无论如何,这似乎是解决办法。我会让大家知道的。 Ken 对上述问题的回答是添加/删除程序控制面板小程序中应用程序名称左侧的图标,现在称为“程序和功能”。如果没记错的话,上次在 Windows XP 中使用了“添加/删除程序”。
  • TLama 您应该输入您的评论作为答案,以便我可以将问题标记为已解决。你应该得到功劳。

标签: windows inno-setup setup-deployment ico


【解决方案1】:

解决办法是:

添加

[Setup]
UninstallDisplayIcon={app}\{#MyAppExeName}

指定实际的 ico 文件不起作用,但该条目起作用。

我针对 Windows 8/8.1 进行了测试。 Windows 7 可以在没有这条线的情况下运行。

【讨论】:

  • 我遇到了控制面板显示通用图标的问题,我想更改它。我做了SetupIconFile=MyIcon.ico,安装输出现在显示图标,但控制面板中没有显示相同的图标,这会解决这个问题吗?
  • 我不确定你的问题。我刚刚在 Windows 10 的控制面板程序和功能中检查了我的应用程序,我确实看到了 ICO 图像。我建议在 Oracle 的 Virtual Box 上创建一个全新安装的操作系统,然后重试。
  • UninstallDisplayIcon 指定的路径按原样保存以卸载目标机器上的注册表项。所以它必须指向目标机器上存在的文件。它没有像SetupIconFile 那样嵌入到安装程序中。所以UninstallDisplayIcon 甚至可以指向.ico 文件,如果需要的话,但是.ico 文件需要显式部署到目标机器(例如使用[Files] 部分)。
【解决方案2】:

我也可以确认这是一个可行的解决方案(Win7 x64):

[Setup]
UninstallDisplayIcon={uninstallexe}

我真正喜欢这里的是它独立于应用名称等。只是卸载程序的纯别名。

发现于https://dutchgemini.wordpress.com/2011/05/03/innosetup-and-the-missing-uninstall-icon-on-windows-7

【讨论】:

  • 但是你想要你的应用程序图标,而不是通用设置图标。
  • @MartinPrikryl,它准确地添加了您的应用程序图标。也许,对于复杂的场景(多个图标、单独的应用程序作为修复/卸载等)它以另一种方式工作,但对于典型的用例来说它非常方便(并且可能作为工具过程的一部分生成)
  • 好的,我明白了,如果你设置SetupIconFile,它可以工作。
  • 我最喜欢这个选项,因为我确实设置了SetupIconFile
【解决方案3】:

添加

应该是

UninstallDisplayIcon= {app}ForwardSlash{#MyAppExeName}

我针对 Windows 10 最新版本对其进行了测试。

【讨论】:

  • 我刚刚检查了我的代码,您对斜线的看法是正确的,但不确定“forwardSlash”是否等同于“\”。我正在使用反斜杠并且一直在使用,但没有注意到缺少的斜杠。我在编辑之前检查了上面的答案,发现我添加了一个反斜杠,但斜杠没有显示,所以我将其设为正斜杠。
  • 没有意义,当然是反斜杠。这是一条 Windows 路径。 (尽管一如既往,您可以使用正斜杠,Windows 也可以识别,但这是不正确的)。
【解决方案4】:

我对您的#MyAppExeName 解决方案有疑问,因为我使用了OutputBaseFilename 指令。更优雅的解决方案是:

UninstallDisplayIcon={srcexe}

【讨论】:

  • 不要那样做。一旦用户删除原始安装程序文件({srcexe} 解析为),它就会中断。
猜你喜欢
  • 1970-01-01
  • 2017-12-17
  • 2015-11-22
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 2022-08-22
  • 1970-01-01
  • 2013-03-28
相关资源
最近更新 更多