Я использую 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
Это прекрасно работает, ЕСЛИ на рабочем столе не будет папки с именем matlab
во время запуска Inno Setup compile.
Правильный ярлык на рабочем столе имеет следующие свойства:
Цель
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
на рабочем столе, то установщик создает ярлык со следующими свойствами:
Target
"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
в любой папке. Я предполагаю, что установщик получает путь из реестра.
Любая помощь в том, почему он падает, и какое исправление может быть, очень ценится.