Take the 2-minute tour ×

If my understanding is correct, for a self contained project you can just copy the bin folder and run it perfectly fine.

What then is the use of a wizard? I prefer not having to use a wizard if I don't have to.

share|improve this question
What wizard are you talking about? –  Icarus Aug 22 '12 at 22:36
A wizard, as in an installer for the application that I have published. Ie. "click next to install this program files/my app/" –  Simon Frost Aug 22 '12 at 22:38
add comment

closed as not constructive by casperOne Aug 23 '12 at 12:02


4 Answers

up vote 5 down vote accepted

Typically you would make an installer for a few reasons:

  1. you may need to do custom actions in addition to just copying the files in the "\bin" folder. For example:

    • Detect Dependencies
    • Set keys in the registry
    • Install a windows service
    • Check the windows settings to further customize the install.
    • Install assemblies into the GAC.
  2. You may need to perform some action that requires Administrative privileges. The installer can handle the escalation of privileges for you.

  3. It is generally a "nicer" experience for an end user to see a real installer.

  4. An installer will make an "uninstall" item in the Add/Remove programs list in Windows.

  5. Instead of copying / distributing / downloading multiple files (.exe, several .dlls, .config, etc) you can package them into a single .msi file.

This is just a few reasons why you might want to use an installer. That of course doesn't mean it is the only choice. Just one that makes sense for a lot of cases.

share|improve this answer
add comment

I guess your client would rather have a wizard to guide him throughout the installation process. Also, if you are talking about Desktop Applications you could configure your wizard to perform custom actions such as configure a database or connect to a licensing server.

share|improve this answer
add comment

This is a miniature version of the debate of "Why use an IDE, I love writing code in a text editor."

One benefit of a wizard is that sometimes you might be able to save ftp credentials, for instance. Then again, if you are on a local network and you don't have to login, or you have some other way of caching credentials, (like using FileZilla), the small amount of time that you save may be so small that it really doesn't matter.

In general, another reason that wizards may be helpful is when they provide a small set of recently used options/servers/connections/tables/folders in a dropdown that you can choose from instead of having to type them in again or navigate to them again.

Cons to wizards: You can get too reliant on them. You can lose settings if they get mysteriously reset somehow, so if you do use them, remember to keep notes of how you set up a wizard or how you typically use it.

Same goes for using an IDE. If you always open your solution on your machine, make sure to open it every once in a while on a new machine just to check that there is not some magical/transient/volatile setting that is set correctly on your machine, either in the registry or in the solution/project properties, a plugin, your .suo, etc.

share|improve this answer
add comment

re: installation wizard - oh, I thought you were talking about deployment wizards in my previous answer.

Installation Wizards are nice for users, and you can wrap lots of other little changes like automatic unpacking, changes to the registry, tons of stuff.

Also a major reason to use something like InstallShield is that the initial perceived installation speed versus a free wizard is going to be faster. Also, use legitimate 3rd party signing of your executable so that Windows doesn't popup Unknown Publisher (it looks sketchy).

share|improve this answer
add comment
