# NSIS installer for Windows

**URL:** <https://forum.vassalengine.org/t/nsis-installer-for-windows/258>\
**Category:** Development\
**Created:** [February 10, 2008, 6:25pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258 "2008-02-10T18:25:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 10, 2008, 6:25pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/1 "2008-02-10T18:25:48Z")

</div>

I tried building an installer for use on Windows using NSIS. Here’s the  
result:

[nomic.net/~uckelman/tmp/vass … indows.exe](http://www.nomic.net/~uckelman/tmp/vassal/VASSAL-3.1.0-svn3026-windows.exe)

I’m pretty happy with this. It looks like a normal Windows installer, it’s  
executable, it gives you an entry for the version of VASSAL you installed  
in “Add/Remove Programs”, and I can build in on Linux.

The remaining things to do are

1. Put icons on the user’s desktop (if desired), and
2. Put a folder for VASSAL on the Start menu (if desired).

These are simple to do with NSIS, so I’ll do them soonish.

---

<div class="post-metadata">

**Author:** ![mehrunes](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/m/9e8a1a/32.png) [@mehrunes](https://forum.vassalengine.org/u/mehrunes)\
**Post date:** [February 10, 2008, 8:26pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/2 "2008-02-10T20:26:56Z")

</div>

Looks nice and most people would be more comfortable with that kind of installation routine.

_thumbsup_

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 10, 2008, 9:58pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/3 "2008-02-10T21:58:24Z")

</div>

Here’s a slightly improved version:

[nomic.net/~uckelman/tmp/vass … indows.exe](http://www.nomic.net/~uckelman/tmp/vassal/VASSAL-3.1.0-svn3028-windows.exe)

This now adds Start Menu items and desktop shortcuts.

---

<div class="post-metadata">

**Author:** ![Tim\_M](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/tim_m/32/2_2.png) [@Tim\_M](https://forum.vassalengine.org/u/Tim_M)\
**Post date:** [February 10, 2008, 10:10pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/4 "2008-02-10T22:10:35Z")

</div>

Very nice. Clean up/uninstall is flawless - better than some pro programs 🙂

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![bsmith](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/bsmith/32/1_2.png) [@bsmith](https://forum.vassalengine.org/u/bsmith)\
**Post date:** [February 11, 2008, 12:29am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/5 "2008-02-11T00:29:47Z")

</div>

Gold!

Now we can get rid of Webstart yeah? Right? 😃

---

<div class="post-metadata">

**Author:** ![rk1](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/r/9f8e36/32.png) [@rk1](https://forum.vassalengine.org/u/rk1)\
**Post date:** [February 11, 2008, 1:52am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/6 "2008-02-11T01:52:25Z")

</div>

> [@](#):
>
> Now we can get rid of Webstart yeah? Right? 😃

Assuming these installers kick ass, then I’m fine with getting rid of WebStart. However, I’d like to keep around a WebStart-enabled demo that runs through the tour. I really like the idea that newcomers browsing the site for the first time can get a demo with one click.

rk

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 11, 2008, 9:11am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/7 "2008-02-11T09:11:57Z")

</div>

Thus spake “bsmith”:

> [@](#):
>
> Gold!
> 
> Now we can get rid of Webstart yeah? Right? 😃

Well, that’s up to Rodney, I guess. There’s one thing still  
missing without Web Start, which is checking for newer versions  
of VASSAL. That wouldn’t be hard to code, but it isn’t coded  
yet.

–  
J.

* * *

Messages mailing list  
[Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
[forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 22, 2008, 10:01pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/8 "2008-02-22T22:01:15Z")

</div>

Here’s a current snapshot of the Windows installer:

[nomic.net/~uckelman/tmp/vass … indows.exe](http://www.nomic.net/~uckelman/tmp/vassal/VASSAL-3.1.0-svn3134-windows.exe)

There are two install types:

Standard (“I fear my computer, I just want to play games”)

and

Custom (“I am 1337, show me all the knobs I can turn”)

If you choose Standard, the only choice you have left to make is whether  
to start VASSAL immediately on the last page of the installer.

If you choose Custom, you get to specify the install directory, whether  
you want desktop and quick launch icons, and if/where in your start menu  
VASSAL should go.

Right now, the installer doesn’t handle two things which it should:

1. Uninstalling previous versions of VASSAL.

2. Checking that the user has a sufficiently recent JRE, and installing  
one if necessary.

Lastly,

1. It would be nice to have some artwork to use for the left pane on the  
start and finish pages, as well as a good icon for the top banner. We need  
a good icon anyway for the shortcuts… I keep thinking that I might  
commission one from a friend who’s a graphic artist.

Comments are welcome. In particular, I’d like to have opinions on how we  
should handle installing a JRE. It’s not too hard to check whether an  
appropriate one exists. If so, then there’s nothing for the installer  
to do and it can skip that step. On the other hand, if you need a (newer)  
JRE, then clearly the Custom install should tell you that, but let you  
uncheck a box for it if you don’t want it to be done automatically. (Not  
having a suitable JRE won’t prevent VASSAL from installing, it will just  
prevent it from running afterwards. It’s also possible that the check for  
the JRE failed even though there is really a suitable JRE around, and the  
user knows this, so in that case we don’t want to force a JRE on him.)

What I’m not certain about is how the Standard install should handle it.  
If we take the approach that the Standard install should require as  
little user input as possible, then the least we can get away with is a  
page telling the user that a JRE will be downloaded, the installer for it  
will come up, and that he should choose the defaults. (I don’t think it’s  
possible to install a JRE without _any_ user input…) That gives the user  
a chance to cancel out if he really doesn’t want a new JRE, and gives him  
an easy path through the installation otherwise.

---

<div class="post-metadata">

**Author:** ![mkiefte](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/mkiefte/32/25_2.png) [@mkiefte](https://forum.vassalengine.org/u/mkiefte)\
**Post date:** [February 22, 2008, 11:57pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/9 "2008-02-22T23:57:20Z")

</div>

I seem to recall someone had offered to do artwork or there was a new  
icon or something. And then we never heard about it again. What  
happened to that?

- M.

> [@](#):
>
> 1. It would be nice to have some artwork to use for the left pane on the  
> start and finish pages, as well as a good icon for the top banner. We need  
> a good icon anyway for the shortcuts… I keep thinking that I might  
> commission one from a friend who’s a graphic artist.

* * *

Messages mailing list  
[Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
[forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![rk1](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/r/9f8e36/32.png) [@rk1](https://forum.vassalengine.org/u/rk1)\
**Post date:** [February 23, 2008, 12:24am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/10 "2008-02-23T00:24:49Z")

</div>

The 3.0 splash screen was contributed by a fellow from France named Gregory. He did in fact send me some icon artwork a while ago. Let me hook him up with Joel and see if he can provide what we need.

rk

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![soft-bug](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/soft-bug/32/6_2.png) [@soft-bug](https://forum.vassalengine.org/u/soft-bug)\
**Post date:** [February 23, 2008, 7:20am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/11 "2008-02-23T07:20:17Z")

</div>

> [@rk](#):
>
> The 3.0 splash screen was contributed by a fellow from France named Gregory. He did in fact send me some icon artwork a while ago. Let me hook him up with Joel and see if he can provide what we need.
> 
> rk
> 
> Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

I’ve just see you email and i’m ready to help …

I’ve done this few month ago :

[lotrtmg.30.forumer.com/index.php … ost&id=284](http://lotrtmg.30.forumer.com/index.php?act=Attach&type=post&id=284)

I’m currently using it for the new born Vassal France community :

[lotrtmg.30.forumer.com/index.php … ost&id=638](http://lotrtmg.30.forumer.com/index.php?act=Attach&type=post&id=638)

I also have a relooking package sent for the toolbar menu icons …

Regards,

Grégory aka Soft-bug

---

<div class="post-metadata">

**Author:** ![soft-bug](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/soft-bug/32/6_2.png) [@soft-bug](https://forum.vassalengine.org/u/soft-bug)\
**Post date:** [February 23, 2008, 8:34am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/12 "2008-02-23T08:34:24Z")

</div>

I join you here my last relooking icons package …

---

<div class="post-metadata">

**Author:** ![mkiefte](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/mkiefte/32/25_2.png) [@mkiefte](https://forum.vassalengine.org/u/mkiefte)\
**Post date:** [February 23, 2008, 11:23am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/13 "2008-02-23T11:23:00Z")

</div>

Grégory, excellent graphics.

Separate question: have you looked at the French translations? They’re  
in rough shape and they need work. And they’re incomplete.  
Interested? I can help, too, if you like.

- M.

* * *

Messages mailing list  
[Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
[forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![soft-bug](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/soft-bug/32/6_2.png) [@soft-bug](https://forum.vassalengine.org/u/soft-bug)\
**Post date:** [February 23, 2008, 12:04pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/14 "2008-02-23T12:04:38Z")

</div>

> [@mkiefte](#):
>
> Grégory, excellent graphics.
> 
> Separate question: have you looked at the French translations? They’re  
> in rough shape and they need work. And they’re incomplete.  
> Interested? I can help, too, if you like.
> 
> - M.
> 
> * * *
> 
> Messages mailing list  
> [Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
> [forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)
> 
> Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

Very interested …

Need to know who, where … and how

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 23, 2008, 1:05pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/15 "2008-02-23T13:05:07Z")

</div>

Updated Windows installer:

[nomic.net/~uckelman/tmp/vass … indows.exe](http://www.nomic.net/~uckelman/tmp/vassal/VASSAL-3.1.0-svn3134-windows.exe)

This version of the installer checks what version of the JRE the user has,  
and installs one if necessary:

For a Standard install, if a pre-1.5.0 JRE is found then an installer for  
a current JRE is automatically downloaded and run in a mode which requires  
no user interaction. (No JRE found is considered to be version 0.0, which  
is clearly less than 1.5. This is checked for and slightly different text  
is shown in this case.) The JRE is installed with the extra fonts and the  
extra language packs, the former becuase they’re nice fonts which we can  
then count on people having for use in SVG and CounterImages, and the  
latter becuase we have no way of telling what language the user really  
wants.

For a Custom install, if a pre-1.5.0 JRE (or no JRE) is found, then the  
user is prompted as to whether the installer should also install a JRE.  
The user is free to decline, and this won’t disrupt the install since  
installation doesn’t depend on having a working JRE. However, in that  
case the user is responsible for getting a JRE to use.

---

<div class="post-metadata">

**Author:** ![mkiefte](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/mkiefte/32/25_2.png) [@mkiefte](https://forum.vassalengine.org/u/mkiefte)\
**Post date:** [February 23, 2008, 3:10pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/16 "2008-02-23T15:10:52Z")

</div>

Grégory, if you like, I’ll do the translations and you can check them.  
Send me a private e-mail and we can do this outside the forum.

[mailto:mkiefte@dal.ca](mailto:mkiefte@dal.ca)

- M.

On 23/02/2008, soft-bug [messages@forums.vassalengine.org](mailto:messages@forums.vassalengine.org) wrote:

> [@](#):
>
> > [@](#):
> >
> > Grégory, excellent graphics.
> > 
> > Separate question: have you looked at the French translations? They’re  
> > in rough shape and they need work. And they’re incomplete.  
> > Interested? I can help, too, if you like.
> > 
> > - M.
> 
> > [@](#):
> >
> > * * *
> > 
> > Messages mailing list  
> > [Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
> > [forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)
> 
> > [@](#):
> >
> > Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))
> 
> Very interested …
> 
> Need to know who, where … and how

* * *

Messages mailing list  
[Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
[forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

---

<div class="post-metadata">

**Author:** ![soft-bug](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/soft-bug/32/6_2.png) [@soft-bug](https://forum.vassalengine.org/u/soft-bug)\
**Post date:** [February 24, 2008, 12:21am UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/17 "2008-02-24T00:21:09Z")

</div>

> [@soft-bug](#):
>
> I join you here my last relooking icons package …

Strange my package is no longer attached to my previous post ? can someone tell me why ?

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 24, 2008, 11:10pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/18 "2008-02-24T23:10:51Z")

</div>

Here’s a version of the installer which I think is done, feature-wise:

[nomic.net/~uckelman/tmp/vass … indows.exe](http://www.nomic.net/~uckelman/tmp/vassal/VASSAL-3.1.0-svn3151-windows.exe)

Summary:

A Standard install requires no user input, will remove old versions of  
VASSAL, and will install Java for you if your JRE is absent or too old.

A Custom install lets you configure everything, including which old  
versions of VASSAL (if any) you want removed.

Caveats:

There are a few cases in which you’ll have odd results, viz.:

(a) if you start the installer when the installer is already running  
(b) if you try to uninstall a running copy of VASSAL  
(c) if you have some file open in a directory the uninstaller is trying  
to remove

These are things which you really shouldn’t do anyway. I can do something  
about (c)—I guess I just need to add the /REBOOTOK flag to all of the  
Delete and RMDir calls that the uninstaller makes. (a) and (b) require a  
bit more coding, which I’m not sure is worth undertaking considering how  
fringe these cases are (and how grueling working on this was…).

---

<div class="post-metadata">

**Author:** ![bsmith](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/bsmith/32/1_2.png) [@bsmith](https://forum.vassalengine.org/u/bsmith)\
**Post date:** [February 24, 2008, 11:20pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/19 "2008-02-24T23:20:45Z")

</div>

That looks really good Joel, thanks.

The only thing I would take out is the Version numbering on the shortcuts. Unless a Custom installation has been done, version numbers should not be visible to users.

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [February 24, 2008, 11:28pm UTC](https://forum.vassalengine.org/t/nsis-installer-for-windows/258/20 "2008-02-24T23:28:46Z")

</div>

Thus spake “bsmith”:

> [@](#):
>
> That looks really good Joel, thanks.
> 
> The only thing I would take out is the Version numbering on the shortcuts. U  
> nless a Custom installation has been done, version numbers should not be visi  
> ble to users.

How about if the Standard install omits the version number, but the  
Custom install uses it for shortcuts? If you’re doing a Custom install,  
there’s a good chance you’re doing it in order to have multiple versions,  
and so you don’t want the shortcuts for other versions to be clobbered.

–  
J.

* * *

Messages mailing list  
[Messages@forums.vassalengine.org](mailto:Messages@forums.vassalengine.org)  
[forums.vassalengine.org/mailman/ … engine.org](http://forums.vassalengine.org/mailman/listinfo/messages_forums.vassalengine.org)

Post generated using Mail2Forum ([mail2forum.com](http://www.mail2forum.com))

[Next page](https://forum.vassalengine.org/t/nsis-installer-for-windows/258.md?page=2)
