Inno setup 升级应用程序-桌面图标-Inno

Inno setup 升级应用程序-桌面图标-Inno,inno-setup,Inno Setup,如果用户已安装,并且他们已将桌面图标移动到其中一个围栏面板中,我发现虽然在升级过程中会删除快捷方式,但它只是重新插入到桌面上,我必须将其拖回围栏面板中 我们是否有办法将其保存在同一个围栏面板中,或者在目标PC上检测是否过于复杂 因此,在我的脚本中,我有: Name: "{autodesktop}\Meeting Schedule Assistant"; \ Filename: {app}\MeetSchedAssist.exe; Tasks: desktopicon; 这是

如果用户已安装,并且他们已将桌面图标移动到其中一个围栏面板中,我发现虽然在升级过程中会删除快捷方式,但它只是重新插入到桌面上,我必须将其拖回围栏面板中

我们是否有办法将其保存在同一个围栏面板中,或者在目标PC上检测是否过于复杂

因此,在我的脚本中,我有:

Name: "{autodesktop}\Meeting Schedule Assistant"; \
         Filename: {app}\MeetSchedAssist.exe; Tasks: desktopicon; 
这是在栅栏里:

根据图标属性,桌面是桌面的捷径,即使它位于Stardock围栏内:


因此,令人遗憾的是,新的一个没有留在同一个地方。如果可以的话,我不想使用
uninseneveruninstall
标志。

Inno安装程序只需在桌面上放置一个快捷方式,因为这是在配置文件中指定的。如果要放置在不同的位置,请将它们添加到配置中

您可以阅读以了解有关图标/快捷方式的更多信息

关于避免将快捷方式移动到桌面,您可能不能,因为Inno确定桌面上没有快捷方式。无论如何,您可以避免Inno安装程序更改任何快捷方式。 您可以使用以下标志:
uninseneveruninstall

这个答案可能会帮助您:


如果您不想使用
uninseneveruninstall
标志,我建议您尝试将版本添加到快捷方式的名称中

例如,
Name:“{autodesktop}\Meeting Schedule Assistant 1.0”\


解释。

我得到了答案。无需更改Inno安装脚本

相反,用户可以对星形码头围栏进行特定更改。它与基于名称的规则有关:

通过使用条件,您可以隔离一条捷径,并告诉它也应该属于哪个围栏面板

引用上述链接:

您可以设置一个设置了名称规则的围栏。通常,任何程序在升级时仍将使用其原始名称。因此,如果设置名称规则,则当它升级时,它将始终被移动到指定的围栏


我真的不想使用
uninseneveruninstall
标志。我很感激你的回答,“升级时删除”-到底发生了什么?安装程序是否简单地覆盖了快捷方式?或者在升级过程中(根据您的参考
uninseneveruninstall
),您是否进行了完全卸载?@MartinPrikryl我想说的是,“图标”不再在围栏内。除了标准的Inno行为外,我不会特别处理图标。但是我现在有一个答案…@MartinPrikryl我在问题中提到了
uninseneveruninstall
,因为第一个答案中的建议。然而,Stardock已经解释了用户可以做些什么来防止这个问题,所以为了其他人的利益,我添加了我自己的答案。