flutter_distributor icon indicating copy to clipboard operation
flutter_distributor copied to clipboard

feat: Add support for custom Inno Setup 6 installation path

Open Copilot opened this issue 6 months ago • 0 comments

Summary

This PR adds support for configuring a custom Inno Setup 6 installation path when building Windows .exe packages, addressing issue #244.

Previously, the path was hardcoded to C:\Program Files (x86)\Inno Setup 6, which caused issues for users who:

  • Installed Inno Setup in a custom location
  • Use portable versions of Inno Setup
  • Have multiple Inno Setup versions installed
  • Work in CI/CD environments with different installation paths

Changes

Core Implementation

  • Added inno_setup_path optional field to MakeExeConfig class
  • Modified InnoSetupCompiler.compile() to accept a custom path parameter
  • Updated AppPackageMakerExe to pass the custom path from configuration
  • Maintained full backward compatibility - defaults to original hardcoded path when not specified

Documentation

  • Updated both English and Chinese documentation with usage examples
  • Added comprehensive configuration examples showing the new option
  • Created a dedicated example file demonstrating the feature

Testing

  • Added comprehensive test cases for configuration parsing
  • Tests verify both presence and absence of the custom path option
  • Ensures proper serialization/deserialization of the configuration

Usage

Users can now specify a custom Inno Setup installation path in their windows/packaging/exe/make_config.yaml:

# Custom Inno Setup installation path (optional)
inno_setup_path: "D:\Tools\Inno Setup 6"

# Other existing configuration options...
app_id: 5B599538-42B1-4826-A479-AF079F21A65D
publisher: LeanFlutter
display_name: My App
# ...

Backward Compatibility

This change is fully backward compatible. Existing configurations will continue to work unchanged, automatically using the default path C:\Program Files (x86)\Inno Setup 6.

Error Handling

Improved error messages now show the actual path being checked when Inno Setup is not found, making troubleshooting easier for users.

Closes #244

[!WARNING]

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • esm.ubuntu.com
    • Triggering command: /usr/lib/apt/methods/https (dns block)
  • https://storage.googleapis.com/flutter_infra_release/flutter/a8bfdfc394deaed5c57bd45a64ac4294dc976a72/dart-sdk-linux-x64.zip
    • Triggering command: curl --retry 3 --continue-at - --location --output /tmp/flutter/bin/cache/dart-sdk-linux-x64.zip REDACTED (http block)
  • https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.3-stable.tar.xz
    • Triggering command: curl -fsSL REDACTED -o flutter.tar.xz (http block)

If you need me to access, download, or install something from one of these locations, you can either:


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot avatar Aug 26 '25 03:08 Copilot