Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

best approch among EXE and MSI

I have an application that needs to be delivered as a package.

  1. What are the best among EXE and MSI Installers, and why?
  2. Is there any open source tool to decompile the EXE or MSI?
like image 209
Shebin Avatar asked Dec 09 '22 08:12

Shebin


2 Answers

It depends on what kind of EXE you are talking about.

MSI is setup package that is run by Windows Installer. If you make setup project with Visual Studio it will provide both MSI and EXE for you. EXE in this case just a bootstrapper (MSI or EXE). It will run MSI after checks that Windows Installer is in place.

If you use other tools like InnoSetup, this EXE is a setup package itself, not a bootstrapper.

Regarding to your question about MSI editor: Orca MSI Editor.

If don't need need very complicated installer, I suggest using Visual Studio setup project as it is simple, yet powerful enough.

like image 186
Alex Aza Avatar answered Dec 16 '22 08:12

Alex Aza


Many installers these days use MSI internally although they're distributed as EXE. You need an EXE to ensure all the prerequisites are installed: .NET framework, for example; and it installs the prerequisites if they're not. Then it extracts the MSI package which handles the rest of the installation.

MSI provides some advanced install features:

  • rollback support: if something failed during installation, it returns the system to the state before installation started.
  • repair: if your application stopped functioning correctly, users can use this feature to reinstall the application. It restores missing files, registry entries.
  • updates/upgrades: MSI handles application updates/upgrades. MSI package can be configured to automatically the previous version of the application when user starts installation of a newer version. This happens transparently to user: it looks as if only the new version is installed.
  • patches: MSI supports patches. When only several files of your application are modified, you can update them using a patch package (MSP). The patch will be smaller than the full package.
  • advertised shortcuts: you can allow users to not install some features of your application unless they're used. When users access such a feature, MSI installs the necessary files.

Though it takes some time to learn the technology.


You can do anything from an EXE file, while MSI is for installation only. Inno Setup and NSIS installation packages are distributed as exe files. They have a scripting language which describes installation steps.


WiX toolset has MSI decompiler called dark.

like image 43
Alexey Ivanov Avatar answered Dec 16 '22 08:12

Alexey Ivanov