Inno Setup - 防止桌面快捷方式打开子文件夹而不是 运行 同名可执行文件
Inno Setup - Prevent desktop shortcut from opening a subfolder instead of running executable with the same name
我使用 Inno Setup 创建安装文件,最近发现了一个问题,但我找不到解决方法。我的应用程序不是直接启动的,它是从另一个程序 matlab
中启动的。所以我的 Files
和 Icons
看起来像这样:
[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;
我使用 Inno Setup 创建安装文件,最近发现了一个问题,但我找不到解决方法。我的应用程序不是直接启动的,它是从另一个程序 matlab
中启动的。所以我的 Files
和 Icons
看起来像这样:
[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;