Which Setup-Tool to use?

  • Thread starter Thread starter Georg Scholz
  • Start date Start date
G

Georg Scholz

Hello,

I am about to write a SETUP program for a .NET Application, and I am
unsure which tool would fit best.
I would be very grateful for some help on this topic.

1) The application will need the following components:
---------------------------------------------------
1a) .NET Framework 1.1.4322
1b) MDAC 2.6
1c) Drivers for MS Access (are these included in MDAC??)
1d) Various DLLs which will reside in the program directory

2) Other needs:
---------------------------------------------------
2a) The setup and the application should at least run on Win2K, Win XP
and Vista.

2b) I would prefer an EXE file for setup.

2c) The app will be distributed via Web and via CD-ROM. For the web
version, the setup should be as small as possible. Therefore, the main
setup should only contain the core application files WITHOUT framework
and MDAC. Only if these components are not yet installed on the
client's machine, they should be downloaded in a second step.

2d) During the setup, the user should be able to select two
directories (for program and data), and after this step, some
information needs to be written either to the registry or into a XML
configuration file.


3) My Questions:
---------------------------------------------------

3a) Which tool would be the best? I am looking for a tool which is
easy to use for beginners , but yet powerful to use on the long run.
I read various articles on Installshield, WISE, InstallAware, VStudio
Setup, but I am unsure which one to use.

3b) Is there a general need to distribute multiple language versions
of the framework and MDAC, or is the english version sufficient for
all languages of Windows?

3c) Some tools seem to generate MSI setups only, no EXE, is this
right?


Many thanks in advance!

Georg Scholz
 
A few inline comments:
--
Phil Wilson
[Microsoft MVP-Windows Installer]

Georg Scholz said:
Hello,

I am about to write a SETUP program for a .NET Application, and I am
unsure which tool would fit best.
I would be very grateful for some help on this topic.

1) The application will need the following components:

[[ You don't always get a vote on this. The latest is at least MDAC 2.8 and
on Vista it's different again. You'll need to be sure your app runs on these
new ones because MDAC 2.6 won't replace MDAC 2.8 on a system. ]]
1c) Drivers for MS Access (are these included in MDAC??)

[[ No. This is the Jet engine stuff. ]]
1d) Various DLLs which will reside in the program directory
2) Other needs:

[[ How old is this app? It seems to be 5 years out of date with the
framework version, MDAC version, and use of Jet/Access instead of SQL
versions (Express), and is two Visual Studio releases out of date. Also,
mainstream support for Windows 2000 Pro expired more than two years ago.
And being picky here, it's not the setup that determines whether your app
will run on those OS versions, and getting an app to run on Vista is
extremely non-trvial, mainly because of UAC, and this goes back to my
comment about not allowing the user to choose a data directory. ]]
2b) I would prefer an EXE file for setup.

2c) The app will be distributed via Web and via CD-ROM. For the web
version, the setup should be as small as possible. Therefore, the main
setup should only contain the core application files WITHOUT framework
and MDAC. Only if these components are not yet installed on the
client's machine, they should be downloaded in a second step.
2d) During the setup, the user should be able to select two
directories (for program and data), and after this step, some
information needs to be written either to the registry or into a XML
configuration file.

[[This is somewhat unusual. Most setups offer a dialog for the primary
install folder for the apps. They install data files into some well known
location, often user profile-based application data without a user choice. I
don't know your targeted customers, but the idea that they know the right
place for data files is something that usually only a developer would think
to offer. Plus there can be issues when an install runs privileged but is
used by limited users who cannot read or write the data because the install
guy chose a secured location. ]]
3) My Questions:
---------------------------------------------------

3a) Which tool would be the best? I am looking for a tool which is
easy to use for beginners , but yet powerful to use on the long run.
I read various articles on Installshield, WISE, InstallAware, VStudio
Setup, but I am unsure which one to use.

[[
1. There is no tool which is easy to use for beginners and powerful enough
for the long term. The tools that are easy are like that because they have
limited features, and only Visual Studio setup projects fall into that
category. If you were starting COM development would you ask that that
question? Or C++ development? The tool is not the issue at all. The issue is
understanding what's going on, whether it's COM, C++ or building an MSI.

2. There are areas you haven't mentioned at all. Do you ever want to offer a
choice of features? Have customized dialogs? Run code to validate CD-keys?
Visual Studio setups do none of these. Perhaps most importantly, what's your
maintenance plan? If you go MSI based you must remain MSI based with
patches, upgrades. You might be surprised at the number of people that ship
a product before testing that thay can actually maintain it. And do you
expect limited users to be able to run the app?

3. Setups always take more time and effort than people anticipate. It's a
separate discipline, like COM, device drivers, ASP.NET programming. Expect a
learning curve that's unrelated to the tool.

]]
3b) Is there a general need to distribute multiple language versions
of the framework and MDAC, or is the english version sufficient for
all languages of Windows?

[[Only you can answer that. If you support multiple languages and you
redistribute 1.1 then you'll need to install the 1.1 language packs, for
example. ]]
3c) Some tools seem to generate MSI setups only, no EXE, is this
right?

[[ It's normal. MSI-based are standard. ]]
 
1. There is no tool which is easy to use for beginners and powerful enough
I would dare to object - I think InnoSetup is a very easy to get
started with installer app, and with its features and extensibility
hooks, it should cover just about everything up to installing
Microsoft Office or Windows...

I find it a lot easier to get a grip on that any of the .MSI
installers, it uses a small script language to script installs, and it
offers very powerful features, and compiles into an EXE.

Check it out for yourself - best of all, it's FREE !
(and I'm not the author - just a happy user)

http://www.jrsoftware.org/isinfo.php

Cheers!
Marc
 
I've not used it, but I think InnoSetup falls into the limited features
group. For example, I don't believe it can group files into features, silent
installs, rollbacks when there's a failure so you can avoid partially
installed products, integration with the OS (like enumerating products and
components installed on the system).
 
I've not used it, but I think InnoSetup falls into the limited features

It always depends on what your "minimum set of features" is - if you
need everything that the MSI Installer for MS Office can do - then
yes, InnoSetup would be "limited".

For a VAST majority of cases, it's more than suitable, though. The
whole MSI technology is very complex and a total overkill for most
cases, IMHO.

Marc
 
Back
Top