objarni's picture

Tip for creating Setups for Windows

Updated: Is there anyone that know an easy-to-use package creator for Ubuntu? It would make my day :)

At work I use InnoSetup to create Setup.exe-files.

I think it is great because

  1. It is easy to use
  2. I understand every step I take
  3. It is free (you can donate if you like it)
  4. It's scriptable (if you need custom steps like oalinst.exe)

Here is a screenshot of InnoSetup in action:

I used the built-in setup facilities of Visual Studio 2005 before that. I didn't know what I did, there were lots of checkboxes and radiobuttons and stuff, and I had problems with missing files at the customer. After that I decided to take more control of the process and avoid the "magic" stuff. Much better..


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

Can you bundle the .net installer along with your application in the installer? That would seriously rock.

objarni's picture

Since .NET requires a re-boot I'm not sure it is such a good idea. At least that was the case for dotnetfx.exe (for .NET2.0).

Does .NET3.5 installer require a reboot?

Anyway - It is quite possible to run .exe's (like oalinst.exe) "in the background" and wait for it to finish - even use a progress bar which you control from within the script.

the Fiddler's picture

Does .NET3.5 installer require a reboot?

It didn't, last time I tried.

We are reaching the point where OpenTK could use an installer. I'm still trying to figure out how to create debs and rpms and I've managed to build Arch packages (need some more testing, though).

Final question: can InnoSetup run in "silent mode", like oalinst? This way, you could bundle and install OpenTK as part of your application's installer, which could be quite useful on Windows.

objarni's picture

Here is an example from within my "make_install.bat" file:

REM **********
REM Create Setup.exe
REM **********
echo Compiling Setup.exe...
set path=%path%;%RXMAPP%\Tools\Inno Setup 5
start /min /wait compil32.exe /cc IGEMS.iss

.ISS is an InnoSetup source file (ASCII). InnoSetupSource I would guess it means.

It makes the InnoSetup-window minimized. It is visible in the task bar. Discreete enough for you?

Update: What do you mean by "installing" OpenTK?

objarni's picture

The .NET3.5 installer works without reboot you said? That's great!

Is it possible to run .NET programs directly after the install too..?

the Fiddler's picture

I guess it depends on *what* needs to be installed, i.e. if .Net 2.0 is already installed, 3.5 probably doesn't need a reboot. I've never tried to install 3.5 on a vanilla OS (without any .Net), so I don't know what happens then.

Last time I installed Visual C# Express, you can launch the IDE directly after installation so that works.

By "installing" OpenTK I mean installing documentation and placing the dlls into the GAC. We could also add a few project types to Visual Studio/SharpDevelop/MonoDevelop if we wanted to get fancy.

Naurava kulkuri's picture

Have you considered using Windows Installer XML (WiX) toolset? It integrates nicely with Visual Studio and the Microsoft toolchain and is quite easy to use also. Microsoft is also using it to create its own installer (like Office) and there have been talks on integrating it as a part of the official package.