InnoVersionManager class

Manages multiple versioned Inno Setup installations under a single root directory. Each version lives in its own subfolder (e.g. <root>/6.3.3/).

Use ensureVersion to download, verify, and extract a version if missing.

Constructors

InnoVersionManager({String? versionsDir})
Creates a manager rooted at versionsDir.

Properties

defaultIsccPath String
The absolute path to ISCC.exe for defaultVersion.
no setter
hashCode int
The hash code for this object.
no setterinherited
installedVersions List<String>
Lists every version subfolder under versionsDir that contains ISCC.exe and is at least minSupportedVersion.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
versionsDir String
Root directory containing version-named subfolders.
final

Methods

ensureDefaultVersion({String? githubToken}) Future<String?>
Ensures defaultVersion is downloaded, checksum verified, and extracted.
ensureVersion(String version, {String? githubToken}) Future<String?>
Ensures version is downloaded, checksum verified, and extracted.
isccPath(String version) String?
Returns the absolute path to ISCC.exe for version, or null if that version is not yet installed.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

innoManagedVersionsDir String
Root directory where the package manages its versioned Inno Setup installs (~/.inno_bundle/versions).
final
innoUserDirPath List<String>
Inno Setup installation path when installed on user-specific level.
final

Static Methods

downloadFile(String url, String destPath) Future<void>
Downloads a file from url and writes it to destPath.
fetchGitHubReleaseData(String url, {String? githubToken}) Future<Map<String, dynamic>?>
Fetches GitHub release data from url and returns the parsed JSON map.
getMachineInnoExec({bool throwIfNotFound = true}) File?
Locates a machine-wide or per-user install of Inno Setup (ISCC.exe).
installedVersionedIsccs([String? versionsDir]) List<File>
Returns the ISCC.exe of every version managed under versionsDir (defaults to innoManagedVersionsDir) that is at least minSupportedVersion, sorted by version in descending order (highest first). Below-floor versions on disk are left untouched but ignored.
machineInnoVersion(File isccExe) String?
Returns the Inno Setup version reported by isccExe, or null when it can't be determined. ISCC prints a Version x.y.z banner on startup.
resolveInnoExec() File?
Resolves the Inno Setup executable to use, or null when none is present.

Constants

defaultVersion → const String
Default Inno Setup version used when no install is detected and one needs to be fetched through the version manager.
GitHub link for documentation on how to download and install Inno Setup.
innoSysDirPath → const List<String>
Inno Setup installation path when installed on the system level.
minSupportedVersion → const String
Minimum Inno Setup version (inclusive) this package supports.