Jump to content

Installer?


slk23

Recommended Posts

The setup wizard is written in C# using Windows Forms. All the code is custom, I didn't use any special installation toolkit or wizard framework.

There is a bootstrapper, SetupShim.exe, written in C that does the .NET check and will either 1) launch the installer if it's in the current directory, or 2) launch the .NET download page in your browser.

#1 helps when/if we publish an installer that bundles the .NET framework which makes for easier distribution on CD's or whatever.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Thanks for the info. I used the forum search function but didn't find anything. But using Google I did find this discussion:

http://paintdotnet.forumer.com/viewtopic.php?t=418

(strangely I still can't get any hits on "NSIS" when I use the forum search function).

I understand the reasoning behind going your own way rather than using NSIS or another installer framework. For my own projects I'm not sure I want to take on the complexity of what you've done. So at this point I'm leaning toward NSIS since it appears to the best, most flexible installer unless I roll my own. If you have any general comments on NSIS I'd love to hear them.

Link to comment
Share on other sites

Well, here's the full breakdown.

1) NSIS is used as the outer-layer packaging. I basically use it as a self-extracting ZIP + "run this little script" (the script copies some files and runs the installer exe).

2) SetupShim.exe does the .NET check.

3) SetupFrontEnd.exe is the setup wizard.

4) PaintDotNet.msi is the Windows Installer package that actually contains all the files. It is authored using the Visual Studio setup project thing.

I should probably author 4 using WiX instead, but have not wanted to do so currently because changes to the installer are very risky at this point. If it works, it can stay for now. If I break it, then I'll get a million e-mails asking for help.

Also worth noting is that an "update" is actually implemented in a very brute force manner. It does a full uninstall, and then a full re-install. This is just the simplest way to do things. Uninstall puts you at a very well known state, at which point the re-install is a no-brainer because you already know how to do that. Managing patches or incremental upgrades is just not worth it, in my opinion, for something like Paint.NET.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...