I create my application with py2exe
and package it into an installer exe using Inno Setup on Windows 7. The installer created this way can then be installed on both Windows 7 and Windows 10 systems. When it works, the installer shows following screens in sequence:
- Welcome screen
- EULA screen
- default (or previous install) location, allowing user to select new install location,
- Confirming install location, and
- usual install screens.
This is the behavior I get with Inno Setup 5.5.5 or lower.
With Inno Setup 5.5.7 and higher (did not try 5.5.6), the installer is created normally and can be setup as above on Windows 7. However, the same installer fails to show screens 1 and 3 from above list during setup on Windows 10: setup directly starts with EULA screen and then jumps to confirm install location. The confirm screen doesn't even show which directory the installation will be done.
Continuing allows the installation to happen in the default location and the application works normally. Not knowing the install location is highly annoying and undesirable.
The .iss
file that I use (see below) is identical across the different Inno Setup versions that I have tried. In the file, the DefaultDirName
is set explicitly (based on the version of the application).
; WARNING: This script has been created by py2exe. Changes to this script
; will be overwritten the next time py2exe is run!
[Setup]
AppName=MyApp
AppVersion=2.0.1
AppVerName=MyApp 2.0.1
AppPublisher=Company, Inc.
AppPublisherURL=www.company.com
[email protected]
AppCopyright=Copyright (C) 2010-2016, Company, Inc.
LicenseFile=license\MyAppEULA.rtf
SetupIconFile=icons\CompanyScreeningProgram.ico
WizardImageFile=icons\MyAppImage.bmp
WizardSmallImageFile=icons\MyAppSmallImage.bmp
DefaultDirName=C:\MyApp_v2.0.1
DefaultGroupName=MyApp
Compression=lzma
OutputDir=F:\Python\dist\
OutputBaseFilename=MyApp_2.0.1_Setup
[Files]
Source: "MyApp_main.exe"; DestDir: "{app}\"; Flags: ignoreversion
Source: "lib\_bsddb.pyd"; DestDir: "{app}\lib"; Flags: ignoreversion
;.
;.
;. 600 lines of Source:
Source: "mpl-data\stylelib\grayscale.mplstyle"; DestDir: "{app}\mpl-data\stylelib"; Flags: ignoreversion
I also tried packaging the installer with Inno Setup (5.5.7 and 5.5.9) on Windows 10, but it had the same behavior.
I was wondering it I need to set additional parameters for the installer to work correctly on Windows 10 also for newer versions of Inno Setup?
DisableWelcomePage=no
andDisableDirPage=no
The installer created (using Inno Setup 5.5.9) now displays the screens as before on Windows 10 and Windows 7, even if it has been previously installed. If you want to keep the above to the Microsoft recommended desktop application defaults, then skip setting of the above, and just set the followingAlwaysShowDirOnReadyPage=yes
– SBK