Visual Studio 2005

I have developed an application using C#. I have created an setup application, and included the .NET Framework 2.0 on the CD.

I am not using ClickOnce.

However, one of our clients is complaining that they cannot install as it's asking for Windows Installer 3.1. However, I didn't exclude that from the setup project.

To do a complete test I decided to install some VMware that didn't have the .NET framework or Windows Installer 3.1 (just a skeleton Windows XP). The application installed OK.

What is the Windows Installer 3.1? And why do I need it?

+3  A: 

You need it to install .NET framework 2.0. Please check this download link.

Its System Requirements says:

System Requirements

-  Required Software:

  o Windows Installer 3.0 (except for Windows 98/ME, which require Windows Installer 2.0 or later). Windows Installer 3.1 or later is recommended.
  o IE 5.01 or later: You must also be running Microsoft Internet Explorer 5.01 or later for all installations of the .NET Framework.

EDIT : You can make sure in your setup project that all the prerequisites for your project exists in your Setup Package. You can find a step-by-step how-to in this CodeProject article..

+2  A: 

Windows installer is the software that is able to run MSI files. It comes (in some version) with Windows (starting in Windows 2000 SP4). In each MSI file, the minimum installer version is defined; installer will complain if the MSI is "too new". The Windows SDK has a table showing what installer versions where included in what Windows releases.

You can get the 3.1 redistributable from Microsoft.

Martin v. Löwis