Inno Setup开始菜单卸载快捷方式未显示Windows10

Inno Setup Start menu uninstall shortcut is not shown on Windows 10

我遇到了一个似乎特定于 Windows 10 的问题,我在设置中创建了“开始”菜单卸载快捷方式。快捷方式根本不显示。
但是,我创建的其他快捷方式也会显示...

这是 DefaultGroupName 的值:

DefaultGroupName={#MyAppPublisher}\MyCompany\MySoftwareName

这是我在 [Icons] 部分中的快捷方式条目:

[Icons]
Name: "{group}\{#MyAppName} {#MyAppVersion}"; Filename: "{app}\MyExeName.exe"; WorkingDir: "{app}"
Name: "{commondesktop}\{#MyAppName} {#MyAppVersion}"; Filename: "{app}\MyExeName.exe"; WorkingDir: "{app}"; IconFilename: "{app}\MyExeName.exe"
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName} {#MyAppVersion}"; Filename: "{app}\MyExeName.exe"; WorkingDir: "{app}"; Tasks: quicklaunchicon
Name: "{group}\{cm:UninstallProgram, {#MyAppName} {#MyAppVersion}}"; Filename: "{uninstallexe}"; WorkingDir: "{app}"; IconFilename: "{app}\Remove.ico"
Name: "{group}\{cm:SHORTCUT_SAV}"; Filename: "{code:GetDataDir}"

我也试过一个简单的条目:

Name: "{group}\Uninstall My Program"; Filename: "{uninstallexe}"

但是快捷方式还是没有显示。

请注意,这在 Windows...

的任何先前版本中都可以正常工作

你有什么想法吗?我进行了搜索,但没有找到与此特定问题相关的任何主题。

Windows 8 和更高版本对 开始 菜单进行了大量优化以减少显示的项目数。

例如,它不会显示指向同一目标的两个快捷方式,无论快捷方式是否具有不同的标签或放置在不同的菜单文件夹中。

您可能是此类优化的受害者。

无论如何,您的尝试违反了 Windows 准则:

  • 您不应在 Windows 8 和更高版本中使用 开始 菜单文件夹。
  • 您不应在 Windows 的任何版本上的 开始 菜单中添加卸载程序的快捷方式。用户应该去 控制面板 设置 应用卸载程序(这也是一个可能的解释,为什么没有显示快捷方式)。

小组和 INNO 的新成员。 :)

我想出了一个解决方法,即在“开始”菜单中添加一个“卸载”条目。

[Icons]

Name: "{group}\{cm:UninstallProgram,{#MyAppNameShort}}"; Filename: "{#MyUninstallFilesDir}\unins000.exe"; Tasks: startmenu

必须 hard-code EXE 并不优雅,但它在 Win10 64-bit 中有效。我的更新计划是卸载 Access Front-end,保留后端,只重新安装 Front-end.

(理论上...)

罗伯特 :)

我遇到了同样的问题。 在我的情况下,有时只有 windows 开始菜单中的卸载快捷方式消失。

我以某种方式修复了它。

只需在图标部分使用命令创建此快捷方式两次。他们的名字需要不同。

例如:

Name: "{group}\{#Uninstall_Name} {#MyAppName}"; Filename: "{uninstallexe}";IconFilename: {app}\{#IconFileStartDesktop};

Name: "{group}\{#MyAppName} {#Uninstall_Name}"; Filename: "{uninstallexe}" ;IconFilename: {app}\{#IconFileStartDesktop};

如果第一个卸载快捷方式没有出现,第二个会出现。

Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}

只需插入命令两次..完成:)