inno_bundle 0.5.0 inno_bundle: ^0.5.0 copied to clipboard
CLI tool for automating Windows installer creation using Inno Setup.
Inno Bundle #
A command-line tool that simplifies bundling your app into an EXE installer for Microsoft Windows. Customizable with options to configure the installer capabilities.
Guide #
1. Download Inno Setup #
- Option 1: Using winget
winget install -e --id JRSoftware.InnoSetup
-
Option 2: From the website
Download Inno Setup from official website. Then install it in your machine.
Note: This package is tested on Inno Setup version
6.2.2
.
2. Install inno_bundle
package into your project #
dart pub add dev:inno_bundle
3. Generate App ID #
To generate a random id run:
dart run inno_bundle:id
Or, if you want your app id based upon a namespace, that is also possible:
dart run inno_bundle:id --ns "www.example.com"
The output id is going to be something similar to this:
f887d5f0-4690-1e07-8efc-d16ea7711bfb
Copy & Paste the output to your pubspec.yaml
as shown in the next step.
4. Set up the Configuration #
Add your configuration to your pubspec.yaml
. example:
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb # <-- Put your own generated id here
publisher: Your Name # Optional, but recommended.
5. Build the Installer #
After setting up the configuration, all that is left to do is run the package.
flutter pub get
dart run inno_bundle:build --release
Note: --release
flag is required if you want to build for release
mode, see
below for other options.
Set it up on a GitHub Workflow #
To automate building the installer with GitHub actions, check out the demo here.
You can copy the workflow from the build.yaml,
it will run on windows-latest
machine, it builds of the installer and it also pushes it to
GitHub Releases with correct versioning,
just in case you needed such step, well it is there :).
Attributes #
Full list of attributes which you can use into your configuration.
All attributes should be under inno_bundle
in pubspec.yaml
.
id
:Required
A valid GUID that serves as an AppId.name
: App name. Defaults to camel casedname
frompubspec.yaml
.description
: Defaults todescription
frompubspec.yaml
.version
: Defaults toversion
frompubspec.yaml
.publisher
: Defaults tomaintainer
frompubspec.yaml
. Otherwise, an empty string.url
: Defaults tohomepage
frompubspec.yaml
. Otherwise, an empty string.support_url
: Defaults tourl
.updates_url
: Defaults tourl
.installer_icon
: A path relative to the project that points to an ico image. Defaults to installer icon provided with the demo. 1languages
: List of installer's display languages. Defaults to all available languages. 2admin
: (true
orfalse
) Defaults totrue
.true
: Require elevated privileges during installation. App will install globally on the end user machine.false
: Don't require elevated privileges during installation. App will install into user-specific folder.
1 Only .ico images were tested.
2 All supported languages are: english, armenian, brazilianportuguese, bulgarian, catalan, corsican, czech, danish, dutch, finnish, french, german, hebrew, hungarian, icelandic, italian, japanese, norwegian, polish, portuguese, russian, slovak, slovenian, spanish, turkish, ukrainian.
Examples to CLI options #
This will skip building the app if it exists:
dart run inno_bundle:build --no-app
This will skip building the installer, useful if you want to generate
.iss script
only:
dart run inno_bundle:build --no-installer
This build is release
mode:
dart run inno_bundle:build --release
Other mode flags are --profile
, --debug
(Default).
Other configuration examples #
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb
publisher: Jane Doe
installer_icon: assets/images/installer.ico
languages:
- english
- french
- german
admin: false
inno_bundle:
id: f887d5f0-4690-1e07-8efc-d16ea7711bfb
name: google_flutter_framework
description: Flutter makes it easy and fast to build beautiful apps for mobile and beyond.
publisher: Google LLC
url: https://github.com/flutter/flutter
support_url: https://github.com/flutter/flutter/wiki
updates_url: https://github.com/flutter/flutter/releases
Additional Feature #
DLL files msvcp140.dll
, vcruntime140.dll
, vcruntime140_1.dll
are also
bundled (if detected in your machine) with the app during installer creation.
This helps end-users avoid issues of missing DLL files when running app
after install. To know more about it, visit
this
Stack Overflow issue.
Reporting Issues #
If you encounter any issues please report them here.