How about a bounty for a new windows installer using inno setup ?

Jim Hewes via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 6 09:28:25 PST 2016


On 12/6/2016 12:21 AM, Thomas Mader wrote:
>
> You can also create a WiX installer out of an InnoSetup installer.
> I think it's more important to decide upon the feature set, readability
> and the time needed to build an installer.
> Have you experience with both? I only have experience with NSIS and
> InnoSetup and in InnoSetup the feature set for Windows is really good
> and the readability is good.

I started out by using InstallShield some years ago and got battle scars 
there. I don't recommend that. I used NSIS a little because a company we 
partnered with required it but I'm no authority on NSIS or Inno.

It really depends on how complicated your particular install is and 
where you expect it to go in the future. If you're just copying a few 
files then anything will work. I don't mean to make too big a deal out 
of it if the requirements are really simple.

Personally I think it's better in the long run to generate an MSI for 
several reasons you can probably look up yourself---security, ability to 
rollback (installation is a transaction), appears in Programs and 
Features, transforms, etc.

> I wouldn't advise doing the coding part externally in D this makes
> things much more complicated than it should be. Stick with what's
> supported by the tool.

I'm not suggesting you necessarily use D together with something like 
NSIS. But you do want to have a one-button automated build process, not 
just for convenience but for repeatability. That's important. Soon you 
will want to get away from the tool's own GUI and run things 
programmatically.

After having not-so-good experiences with InstallShield I looked at 
things like SCons and msbuild, which was just coming out at the time. 
(This was a while ago). I tried msbuild but it didn't have modules to 
support many of the things I needed to do. Things like code-signing with 
a verisign signature, injecting data and files into exe resources, etc. 
Fortunately you can build your own custom modules using C# which is what 
I tried. But the process of transferring variables back and forth from 
the script to C# for every custom module was painful and I thought, "if 
I just do this all in C# it will be much easier". So I switched. I used 
C# not only to call on the WiX tools to run them, but to easily 
manipulate pathname and filename strings, which were different because I 
needed to build different configurations for different customer 
companies. And I also needed to build different combinations of language 
localization. I could use .NET to build a nice GUI for selecting 
configurations, and C# to call the Windows API when needed, move files 
around, anything.

You may also run into issues when you need to do complicated updates and 
there are already earlier versions in the field. You may want to remove 
features, but your installer has to both update existing users in 
addition to supporting new users. It's hard to predict the future though 
so I won't say much about it except that it helps to have a more 
powerful tool when you run into such situations.

The scripting-type tools are tempting because they're easy and no one 
wants to spend any time on installers. It's usually something that 
people hope to just slap on at the end and it often gets underestimated. 
But as I said, maybe it IS easy if you're just copying files and you 
will only ever have one configuration. So it depends.

Jim



More information about the Digitalmars-d mailing list