1
votes

Used Inno Setup to compile an installer with an executable I used from cx_freeze. My executable runs properly when I run it and I am absolutely positive I added all necessary dependencies from the executable file when setting up my installer using Inno Setup Wizard. Yet, I keep getting the following issue when I run my installed executable: enter image description here

The following is the code to my Inno Setup Compiler:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Facile"
#define MyAppVersion "0.0.3"
#define MyAppPublisher "Facade Technologies, Inc."
#define MyAppURL "https://facade-technologies.com/"
#define MyAppExeName "facile.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{EAD17C54-8D79-446B-BF80-FFC1F4BC32BF}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=C:\Users\kirim
OutputBaseFilename=mysetup
SetupIconFile=C:\Users\kirim\Documents\Facade Technologies\facile\resources\facade_logo_256.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl"
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-heap-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-locale-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-math-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-runtime-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\api-ms-win-crt-stdio-l1-1-0.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\python37.dll"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

I've read similar post that hint something about the path not being specified for my installer or python not being able to find those modules . However, I do not know what to write and wear to write it. Like, would it be something I need to fix in my setup.py script for my executable or something I can fix in my Inno Setup Compiler script? Even more important, what do I need to change or write to get it running properly? Maybe, could it possibly be because of where I decided to save my .exe that is installed with mysetup.exe? Anything helps, thank you!

Update

I think I may have figured out my issue. Before, I wasn't installing the folders from my .exe folder that contained all the dependencies, I was adding them as files and not folders. Now I am adding those folders as folders, but there's still an issue because I am not installing the folders properly. I need to maintain the same file structure in my installed .exe folder as the .exe folder I built on my computer. Here is an example line of code to add a folder to my installed .exe folder in my script:

Source: "C:\Users\kirim\Documents\Facade Technologies\facile\build\exe.win32-3.7\lib\*"; \
    DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

The issue is that it installs all the folders and files contained within that folder but not the folder itself, so I can keep the same file structure(for example my script isn't install lib folder it's install everything contained in the folder which changes the file structure set for the exe's source code).

1

1 Answers

0
votes

If you want to install files into subfolder of the installation folder, you have to specify the folder in the DestDir parameter:

[Files]
Source: "C:\...\facile\build\exe.win32-3.7\facile.exe"; DestDir: "{app}"; \
    Flags: ignoreversion
Source: "C:\...\facile\build\exe.win32-3.7\lib\*"; DestDir: "{app}\lib"; \
    Flags: ignoreversion recursesubdirs createallsubdirs

Or, if the build folder contains only the files you want to distribute, include it whole:

[Files]
Source: "C:\...\facile\build\exe.win32-3.7\*"; DestDir: "{app}"; \
    Flags: ignoreversion recursesubdirs createallsubdirs