Inno Setup Compiler lazarus / 21-General ---------------------------------------------------------------------- 1HuntnMan · 2025-02-01 20:16 Okay, made this work but the ContactsMgt.iss, see below I replaced what I had yesterday with a new one.  The only issue is it installed into the Program Files (x86) directory instead of the root directory C:\Contacts Mgt\ The variable {autopf} for the DefaultDirName means C:\Program Files (x86)\ I assume. Next, I'm going to remove the {autopf} from the line in [Setup] DefaultDirName={autopf}\Contacts Mgt with just DefaultDirName=\Contacts Mgt and see if that works... Also, the Uninstall.iss created by this script uninstalled everything in the Program Files (x86) directory, cool! I'm testing Inno Setup Compiler on a simple Contact Mgt. app. I programmed learning Lazarus awhile back. Just for a test I wanted to setup Inno to be able to install the ContactsMgt.exe in the root C: into a created directory called Contacts Management. Then install the data files, i.e. nine files Contacts.dbf, Categories.dbf, Countries.dbf, STProvCodes.dbf and their *.mdx and one memo file *.dbt into a created subdirectory under Contacts Management directory called Data.  See the sample ContactsMgt.iss below I'm toying with. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  ; -- ContactsMgt.iss --; Copy ContactsMgt.exe, DataBase Schema and also create the application icon.; SEE THE DOCUMENTATION FOR DETAILS ON CREATING THE .ISS SCRIPT FILES!; Install the ContacsMgt.exe, ContactsMgt.ico into the folder C:\Contacts ; Mgt\ and the data files into C:\Contacts Mgt\Data\ [Setup]AppName=Contacts ManagementAppVersio n=2.0WizardStyle=modernDefaultDirName={autopf}\Contacts MgtDefaultGroupName=Contacts MangementUninstallDisplayIcon={app}\Conta ctsMgt.exeCompression=lzma2SolidCompression=yes; Install into root\Contacts Mgt;OutputDir=Install-Setup:Contacts Mgt Output [Files]Source: "ContactsMgt.exe"; DestDir: "{app}"Source: "ContactsMgt.ico"; DestDir: "{app}"; Source: "ContactsMgt.chm"; DestDir: "{app}"; Source: {userappdata}; DestDir: "{app}\data\"Source: "Data\Contacts.dbf"; DestDir: "{app}\Data\"Source: "Data\Contacts.mdx"; DestDir: "{app}\Data\"Source: "Data\Contacts.dbt"; DestDir: "{app}\data\"Source: "Data\Categories.dbf"; DestDir: "{app}\data\"Source: "Data\Categories.mdx"; DestDir: "{app}\data\"Source: "Data\Countries.dbf"; DestDir: "{app}\data\"Source: "Data\Countries.mdx"; DestDir: "{app}\data\"Source: "Data\STProvCodes.dbf"; DestDir: "{app}\data\"Source: "Data\STProvCodes.mdx"; DestDir: "{app}\data\" [Icons]Name: "{group}\Contacts"; Filename: "{app}\ContactsMgt.ico" ---------------------------------------------------------------------- silvercoder70 · 2025-02-01 21:00 looks correct for what you have at the moment: - you need to add the database files into the [Files] section as well as the .ico. - the path for them would be {app}\data\ - also make sure any dependencies (DLLs) required as added to the [Files] section. PS. I have used inno setup for too long - when I was working commercially, it was the tool used at the place I worked at and guess who wrote it. ---------------------------------------------------------------------- lainz · 2025-02-02 02:56 If you install it in program files you can't write the database in the same folder else you must run your app as administrator. Better install it without privileges in app data folder. ---------------------------------------------------------------------- dbannon · 2025-02-02 07:16 Here is the .iss file I use.  https://github.com/tomboy-notes/tomboy-ng/blob/master/package/tomboy- ng.iss I build a 64 and 32bit binary (on a Linux box and cross compile, not your way I expect) and then my packaging script bundles all the necessary files, binaries, help notes, a DLL etc into a directory. And, the .iss file. I reuse the same .iss file for every release of my app by using a replaceable parameter, "REPLACEME" with an appropriate version number using sed but you would need a Windows tool to do the same thing I guess. Then, that directory goes to a Windows box (with Inno installed), double click on the .iss file. All done. Been working flawlessly for several years now. Good luck ! Davo ---------------------------------------------------------------------- msintle · 2025-02-02 11:41 Or, look at InstallAware Multi Platform (built with Lazarus). 100% free for open source projects! ---------------------------------------------------------------------- marcov · 2025-02-02 12:13 The FPC inno setup .ist (don't know why they are called that way) files are in the fpcbuild repository in the install/ dir. ---------------------------------------------------------------------- Thaddy · 2025-02-02 14:38 @Marco I haven't used Inno Setup in 25 years or so but isn't it: inno setup template? ---------------------------------------------------------------------- 1HuntnMan · 2025-02-02 20:17 Success. Solved the issue of installing into the C:\Program Files (x86)\Contacts Mgt\ directory by changing the line: ; DefaultDirName={autopf}\Contacts Mgt to just DefaultDirName=\Contacts Mgt Now, I'm going to figure out how to place a Shortcut on the desktop that points to the ContactsMgt.exe in C:\Contacts Mgt directory and also figure out how to make the Uninstall file named UninstallContactsMgt.exe instead of unins000.exe.  Also, tested going into Winders 11 Pro under Apps and Features and found the Contacts Mgt app and uninstalled that way but it displays the unins000.exe which I want the user to be able to see UninstallContactsMgt.exe. ---------------------------------------------------------------------- msintle · 2025-02-03 12:20 Oh man, so much work for problems that ought to have been solved decades ago. ---------------------------------------------------------------------- lainz · 2025-02-03 13:07 Quote from: msintle on February 03, 2025, 01:20:30 pmOh man, so much work for problems that ought to have been solved decades ago. Inno setup is easy to use, no problems at all. It has all solved, but for a newcomer maybe it's a bit hard to understand... ---------------------------------------------------------------------- 1HuntnMan · 2025-02-03 13:57 MSIntle,     You mentioned InstallAware Multi Platform (built with Lazarus). 100% free for open source projects. It looks like there's a cost involved. I'll see if I can download the free version and check it out.     Thanks, 1HuntnMan ---------------------------------------------------------------------- 1HuntnMan · 2025-02-03 16:53 I tried installing InstallAware X17. Took a look then uninstalled it, I think I'll stick with Inno Setup Compiler. ---------------------------------------------------------------------- silvercoder70 · 2025-02-03 22:15 Hi. Can you tell me where you (the user) saw reference to unins000.exe program? ---------------------------------------------------------------------- lainz · 2025-02-04 00:38 If I remember correctly the unins000 is a way to keep several uninstallers in the same folder. So you better keep it like that: unins000 unins001 and so on. The user see in Applications the name of your app. Never the name of the exe. If you want put it in a subfolder called uninstall or something like that. ---------------------------------------------------------------------- silvercoder70 · 2025-02-04 05:32 Yes. I would treat that as part of the windows install/uninstall system and leave  that part alone. And hopefully,  if the application is good enough the users never go near the uninstall action. Lastly,  and hopefully this does not come across as being critical... the ease of installing and smoothness of the operation and the application itself are far more important than the name of the uninstall program. ---------------------------------------------------------------------- msintle · 2025-02-04 08:54 Quote from: 1HuntnMan on February 03, 2025, 05:53:50 pmI tried installing InstallAware X17. Took a look then uninstalled it, I think I'll stick with Inno Setup Compiler. AFAIK X17 is Windows-only and is not free, but Multi Platform is free for open source projects and supports macOS and Linux, too. The former ought to be built with Delphi and the latter with Lazarus. So this is how they're able to basically compile existing X17 projects (even from 20 years ago!) literally intact (with custom UIs and everything) for Mac and Linux, pretty incredible technical feat (that could only be made possible by Lazarus!) ---------------------------------------------------------------------- Thaddy · 2025-11-05 15:46 InnoSetup is Windows only, but it is good, being Windows only.