【问题标题】:Start Menu Folder as a Subdirectory - Inno Setup开始菜单文件夹作为子目录 - Inno Setup
【发布时间】:2013-02-21 11:21:44
【问题描述】:

我想在开始菜单中为我的程序添加一个快捷方式如下:

MyAppPublisher\MyAppName\MyAppName

我的脚本中有这个:

DefaultGroupName={#MyAppPublisher}
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

但开始菜单文件夹总是:

MyAppName\MyAppName

有什么想法吗?

【问题讨论】:

  • 您描述的行为很奇怪。您当前的脚本必须创建MyAppPublisher\MyAppName,而不是MyAppName\MyAppName 快捷方式。确保您正在运行正确的设置(例如,如果您打开了多个 InnoSetup IDE)并且在运行设置之前您已经正确地重新编译了脚本。

标签: inno-setup


【解决方案1】:

就像在[Icons] 部分的条目的Name 参数中指定此路径一样简单。您当前的脚本会创建一个类似MyAppPublisher\MyAppName 的快捷方式,这个可以满足您的需要:

#define MyAppName "MyAppName"
#define MyAppExeName "MyProg.exe"
#define MyAppPublisher "MyAppPublisher"

[Setup]
AppName={#MyAppName}
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName={#MyAppPublisher}
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "{#MyAppExeName}"; DestDir: "{app}"

[Icons]
; notice the full path to the created shortcut, {group} is taken from the Select
; Start Menu Folder page edit box (if shown), which is by default taken from the
; DefaultGroupName directive value; this start menu folder path is then followed
; by the tail of the shortcut path
Name: "{group}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

【讨论】:

  • 请注意,最佳做法是在默认情况下指定“完整”路径,并像往常一样使用{group}。然后,这将允许用户将它们放在他们想要的任何组中。
  • 这取决于OP实际上希望允许用户选择什么。如果只是开始菜单文件夹(其余的保持不变为{#MyAppName}),那么这是正确的方法。 [+1 供您选择]
  • 请注意,像这样强制执行子文件夹结构会惹恼一些用户。正如 Deanna 所说,最佳实践是允许用户更改所有路径,并且只在该路径下安装简单的图标而不是子文件夹。
【解决方案2】:

如果希望组在子文件夹中,则需要指定子文件夹。

执行此操作的最佳方法是将其附加到 DefaultGroupName 指令的末尾,该指令将在设置向导中显示正确的信息,并允许用户将其更改为单个文件夹或其他位置(如果他们愿意的话) .

DefaultGroupName={#MyAppPublisher}\{#MyAppName}

请注意,Windows 8 中的“开始”菜单不是分层的,因此无论如何都不会看到任何嵌套。

【讨论】:

  • 在 Windows 10 中似乎相同 - 它只是完全忽略了子文件夹。
【解决方案3】:

找到了,我在问题中建议的脚本是正确的,出于某种原因,我需要为脚本生成一个新的 GUID 才能使更改生效

【讨论】:

  • 不,不正确。您已经询问了如何在 MyAppPublisher\MyAppName\MyAppName 中创建快捷方式,而您的问题中的脚本不能简单地发生这种情况。你错过了最后一个\MyAppName
  • 对不起,你是对的。尽管出于某种原因我仍然需要更改我的 GUID 才能实现它。很奇怪。
  • 我会说,卸载您在测试期间安装的最后一个版本应该足够了。
  • ^ 正如 TLama 所说,在测试对安装程序的更改之前,您需要先卸载。默认情况下,Inno 会记住上次安装期间选择的路径并默认为这些路径,即使您更改了脚本。 (这是用户所期望的,所以这是一件好事。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多