2013-03-25 36 views
5

桌面上已经有一个相同名称的快捷方式,但它由安装setupfactory安装(我想用inno替换它)。现在当我使用innosetup创建的安装程序进行安装时,它会创建一个新的图标而不是替换当前的图标。我添加了[installDelete]部分,但不起作用。我刚刚检查了快捷方式的属性。我发现的差异是一个快捷方式拥有所有者作为管理员组,另一个是我的用户。但都是由同一用户安装的。那会是原因吗?有没有解决这个问题的方法?或者我可以检查是否存在同名的快捷方式?谢谢从桌面替换相同的快捷方式innosetup

两者都指向相同的路径相同的exe。 我安装在Windows 7中

+1

超过所有权将是不同的路径。检查这些快捷方式的路径,并将其纳入您的问题中。 – TLama 2013-03-25 14:43:54

+0

谢谢..我编辑了这个问题 – sjd 2013-03-25 14:45:58

+0

也许你在'Users \ YOUR_PROFILE \ Desktop'中有一个快捷方式,它将是'{userdesktop}',另一个在'Users \ Public \ Desktop'中将是'{commondesktop}' – RobeN 2013-03-25 14:48:21

回答

5

在这种情况下,您应该检查两个快捷方式的位置。

可能其中之一是在公共桌面文件夹(对于所有用户)中创建的 - {commondesktop},第二个是针对当前用户桌面文件夹 - {userdesktop}预定义的。

A.

[Icons] 
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 

B.

[Icons] 
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; 
WorkingDir: "{app}"; Tasks: desktopicon 
+0

是的,这是问题所在。现在我使它成为了userdesktop。再次感谢。 – sjd 2013-03-25 15:15:09

+0

@ user1616785,你也可以['upvote the answers'](http://meta.stackexchange.com/a/173400/179541),就像我在这篇文章前几分钟所做的那样;-) – TLama 2013-03-25 16:02:11

+0

@ user1616785请注意,您安装的“{userdesktop}”可能与运行安装程序的用户的桌面不一样。如果必须从LUA升级到管理员,那么用户将会不同。 – Deanna 2013-03-26 09:56:50

0

当你安装程序之间切换构架通常最好安装新的之前先卸载旧版本(通过它的卸载程序)。 (您可以自动执行此操作。)

如果您不这样做,那么很可能用户最终会在其驱动器中出现杂散的卸载程序文件,并且会有多个添加/删除程序条目;这两个都很丑陋。

(这是一次性的东西 - 有没有必要从一个创新科技或应用改变版本时到另一个,只能从非创新科技转变为创新科技或反转时自动卸载旧版本)

+0

通常我们会这样做。但我们也使用升级设置,其中不包括卸载程序。所以第一个卸载程序可以正常工作,因为升级安装程序只安装与最新版本相同的文件。感谢您的提示 – sjd 2013-03-27 04:31:19

+0

直到一些后来的版本,你添加了一个额外的文件。(通常,当您使用Inno进行更新安装时,您*希望它为此创建卸载条目 - Inno足够聪明,可以默认添加到现有的卸载日志和条目中,但当然这只适用于如果最初的安装是使用Inno完成的话)。就个人而言,我仍然建议检测这种情况并要求用户使用完整的安装程序。我不确定SetupFactory,但我知道如果其他安装程序替换它们的文件,基于MSI的安装程序会变得脾气暴躁。 – Miral 2013-03-27 19:45:52