Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are Visual Studio Setup projects suitable for complex setups?

Are "Visual Studio Setup" projects suitable for complex setups in different versions?

The application is rather large (> 500,000 lines of code) and is under continuous development. Every 6 to 10 months a new version gets released. We have multiple configuration files (INI and XML), registry keys, database migration scripts, etc. The application is in the progress of being migrated from Visual Basic 6.0 to .NET. The old installer was build with Installshield. The feedback to Installshield is: Bad adaptability, bad reuse - that's why we are evaluating "Visual Studio Setup" as an alternative.

Other products we consider:

Free Solutions

  • WiX
  • NSIS

Commercial Solutions

  • Installshield (again...)
  • Wise
  • Advanced Installer
  • Is Something missing?

Solutions we don't like to consider:

  • Inno Setup (it just doesn't feel right)
like image 666
Robert Avatar asked Mar 20 '10 11:03

Robert


People also ask

How do I add a custom action to Visual Studio setup project?

On the Action menu, click Add Custom Action. In the Select Item in Project dialog box, double-click the Application Folder. Select the gadget assembly that was added to the setup project, and then click OK. In the Properties window, make sure that the InstallerClass property is set to True (this is the default).

What is a setup project?

Setup projects are used to create a installer package for the applications we developed. Setup project will generate . EXE and/or . MSI files which can be installed on server or client machines.

How do I run Visual Studio setup?

In the Windows Start menu, you can search for "installer", and then select Visual Studio Installer from the results. If you have Visual Studio open, select Tools > Get Tools and Features..., which opens the Visual Studio Installer.

How do I add installer class to setup project?

To add a custom action click on the custom action icon. This will open the following window and there we can add a project containing an installer class. To create this project having an installer class, we can make a class library type of project and add an installer class in it from the add new item dialog.


1 Answers

No, no, no and no to Visual Studio Deployment projects. I've been there on "large" projects (15,000 files with thousands of merge modules and hundreds of InstallUtil custom actions because VDPROJ exposes almost nothing of the underlying MSI such as creating services). I could go on for hours about how horrible it truly is.

I have a team of four installation developers and we use a mix of WiX and InstallShield. Our typical install has nearly 100 features, 800 merge modules and 15,000 files. We deploy nearly every type of resource you can imagine including chaining third-party installs to create complete products or systems. We are able to do this for over a dozen products each building off of multiple integration, release and maintenance branches. The four of us support an organization of over 400 people with around 250 developers.

We are able to do this because InstallShield actually can give you a fair amount of reuse. You use product configurations and features / merge modules to create encapsulations of groups of files and business logic. Still, WiX does a better job (although much harder to learn and feature holes here and there that we still need InstallShield for), so we have been slowly transitioning our baseline over to WiX where possible.

like image 137
Christopher Painter Avatar answered Nov 13 '22 09:11

Christopher Painter