Client Profile Configuration Designer and Windows Installer 3.1

May 20, 2009 at 2:56 AM

Hopefully I'm missing something simple but when using the latest designer beta, I select Windows Installer 3.1 as a Prerequisite. I see WindowsInstaller-KB893803-v2-x86.exe get bundled into my setup.exe via the build output and the corresponding 3MB jump in output file size. But when I run on a naked XP SP2 virtual machine, I get "This program requires Windows Installer version 3.1 or later. Do you want to visit the Winows Installer update page now?"

My expectation would be that the bootstrapper should be installing the bundled prereq rather than displaying this message box. When I add the ".NET Framework Client Profile" prereq the install experience is as expected (client profile downloaded and installed). What am I missing?

Thanks in advance,

May 21, 2009 at 2:58 AM

Hi SG,

This is a known limitation in the setup bootstrapper used for setup packages created by the Configuration Designer tool. Internally the setup engine uses quite a few Windows Installer 3.1 features, so there's a hard check for the presence of that version of Windows Installer on the target machine. Normally this shouldn't hurt deployment significantly as Windows Installer 3.1 is the first update to be deployed to Windows XP machines through Windows Update; higher versions of the OS come with higher versions of Windows Installer built-in too.

The reason the Windows Installer 3.1 package shows up in the prerequisites dialog is because we show all of the Windows SDK packages you have installed on your machine. Moving forward, to avoid confusion and reduce package sizes, we'll filter out the Windows Installer 3.1 package from that list as it's a hard dependency for the bootstrapper being used.

Hope this helps,

May 21, 2009 at 6:25 AM

Hi Bart,

Yes, that helps explain things perfectly.

Because of the setup engine's need for Installer 3.1 features, I'd vote for being able to elect to take the download hit of bundling the prereq (3MB is nothing these days) on every installer download to guarantee that Installer 3.1 bits get put in place before the bootstrapper runs since Installer 3.1+ is a needed runtime environment. This then eliminates that message box pop with the offer to navigate to the manual Installer 3.1 download web page, which is not an ideal end-user first impression experience (the linked-to page contains a lot of verbiage and requires hunting around for the right download link, then requires a manual install, then requires rerunning the bootstrapper). One of the great benefits I see with the bootstrapper is vastly improved end-user first impressions, especially for users that do not yet have the Client Profile on their box. That seamlessness is broken in this use case.

As you point out, only a fraction of a fraction of users aren't going to have Installer 3.1 bits or higher. But with a legacy product that has around a hundred thousands users, I fear that a fraction of a fraction will start to add up to enough incidents to our customer support department helping users get a prereq like Installer 3.1 on their box before upgrading to our new version to be potentially frustrating for those users and/or costly for us to support them. I'd like to have a single setup .exe that I can guarantee will self-install soup-to-nuts on XP SP2 or higher and Vista or higher (and Windows 7, Server 2008, Server 2003). It seems like the bootstrapper gets me 95% of the way there, so I'm quite grateful for that.

Thanks for your help,