Inno Setup - 防止桌面快捷方式打开子文件夹而不是 运行 同名可执行文件

Inno Setup - Prevent desktop shortcut from opening a subfolder instead of running executable with the same name

我使用 Inno Setup 创建安装文件,最近发现了一个问题,但我找不到解决方法。我的应用程序不是直接启动的,它是从另一个程序 matlab 中启动的。所以我的 FilesIcons 看起来像这样:

[Files]
Source: "include\*"; Excludes: "License"; DestDir: "{app}"; \
    Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{group}\{#MyAppName}"; Filename: matlab; \
    Parameters: "-r ""run '{app}\nCAL\nCAL_RUN.p'"""; IconFilename:"{app}\nCAL.ico";
Name: "{commondesktop}\{#MyAppName}"; Filename: matlab; \
    Parameters: "-r ""run '{app}\nCAL\nCAL_RUN.p'"""; IconFilename:"{app}\nCAL.ico"; \
    Flags: useapppaths

这很好用,除非在 运行 Inno Setup 编译时桌面上碰巧有一个名为 matlab 的文件夹。

正确的桌面快捷方式具有以下属性:

目标

C:\MATLAB\R2018b\bin\matlab.exe -r "run 'C:\Program Files (x86)\Ricardo\Global DoE Toolkit\nCAL\nCAL_RUN.p'"

开始于

C:\MATLAB\R2018b\bin

但是,如果桌面上偶然有一个名为 matlab 的(空或其他)文件夹,则安装程序会创建一个具有以下属性的快捷方式:

目标

"C:\Users\jse\OneDrive - Ricardo Plc\Desktop\Matlab" -r "run 'C:\Program Files (x86)\Ricardo\Global DoE Toolkit\nCAL\nCAL_RUN.p'"

开始于

"C:\Users\jse\OneDrive - Ricardo Plc\Desktop"

快捷方式只是在资源管理器中打开 matlab 文件夹。

我无法明确指定 C:\MATLAB\R2018b\bin\matlab.exe 部分,因为用户可以在任何文件夹中拥有任何版本的 matlab。我假设安装程序从注册表中获取路径。

如能提供有关它为什么会掉下来以及如何解决的任何帮助,我们将不胜感激。

使用matlab.exe作为快捷方式目标,以区别于matlab文件夹。

Filename: matlab.exe;