Inno setup 开始菜单文件夹作为子目录-Inno设置

Inno setup 开始菜单文件夹作为子目录-Inno设置,inno-setup,Inno Setup,我想在“开始”菜单中为我的程序添加快捷方式,如下所示: MyAppPublisher\MyAppName\MyAppName 我的脚本中有以下内容: DefaultGroupName={#MyAppPublisher} Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 但“开始菜单”文件夹始终为: MyAppName\MyAppName 有什么想法吗?只需在节中条目的Name参数中指定此路径即可。当前脚本将创建一

我想在“开始”菜单中为我的程序添加快捷方式,如下所示:

MyAppPublisher\MyAppName\MyAppName
我的脚本中有以下内容:

DefaultGroupName={#MyAppPublisher}
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
但“开始菜单”文件夹始终为:

MyAppName\MyAppName

有什么想法吗?

只需在节中条目的
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}"

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

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

最好的方法是将其附加到
DefaultGroupName
指令的末尾,该指令将在安装向导中显示正确的信息,并允许用户根据需要将其更改为单个文件夹或其他位置

DefaultGroupName={#MyAppPublisher}\{#MyAppName}

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

您描述的行为很奇怪。当前脚本必须创建了
MyAppPublisher\MyAppName
,而不是
MyAppName\MyAppName
快捷方式。请确保您正在运行正确的安装程序(例如,如果您打开了多个InnoSetup IDE),并且在运行安装程序之前正确地重新编译了脚本。不,它不正确。您询问了如何在
MyAppPublisher\MyAppName\MyAppName
中创建快捷方式,而这不能简单地用您问题中的脚本实现。您缺少最后一个
\MyAppName
。很抱歉,您是正确的。尽管出于某种原因,我仍然需要更改GUID以使其生效。奇怪。我想说的是,卸载测试期间安装的最后一个版本就足够了。^正如TLama所说,在测试对安装程序的更改之前,您需要卸载。默认情况下,Inno将记住上次安装期间选择的路径,并默认为这些路径,即使您更改了脚本。(这正是用户所期望的,所以这是一件好事。)请注意,最好的做法是在默认值中指定“完整”路径,并正常使用
{group}
。这将允许用户将他们放入他们想要的组中。这取决于OP实际希望用户选择什么。如果只有开始菜单文件夹(其余的保持不变为
{MyAppName}
),那么这就是正确的方法。[+1表示您的备选方案]请注意,强制执行这样的子文件夹结构会让一些用户感到烦恼。正如Deanna所说,最佳实践是允许用户更改所有路径,并且只在该路径下安装简单图标,而不是子文件夹。在Windows 10中似乎是一样的-它只是完全忽略子文件夹。