Adopting Windows Installer 4.5


It’s been a few months now since the Windows Installer 4.5 redistributable was released [link]. Over the past couple months I have received several questions (quite often similar in nature) that warrants this blog post <grin>. In this post, I will attempt to answer some of the most frequently asked questions with regards to adoption & deployment of MSI 4.5.


1.       I’m considering taking a dependency on MSI 4.5 for my next release. I would like to know how prevalent MSI 4.5 might be in our target environments. Do you have any data on this?

 


We are pleased to hear that you are considering taking advantage of the new feature set and functionality provided in MSI 4.5. We have some data that may help you understand the current penetration of MSI 4.5 in the ecosystem.


a.       Statistics from the Microsoft download center:


As of March 2009, there have been over 5.6 million downloads of MSI 4.5 (combined across all supported platforms & OSes).


b.      Other ways in which MSI 4.5 is being deployed to users machines:


Yes, besides the fact that users are downloading MSI 4.5 from Microsoft download center, there are also other mechanisms via which MSI 4.5 is being deployed to users machines. For example;


          SQL Server 2008 (both full server as well as express version) requires MSI 4.5 as a pre-requisite.


          This dependency in turn has a cascading effect on other products that are already dependent on SQL Server 2008 or will be in the future.


c.       Future Windows service packs:


MSI 4.5 will be natively included in all future service packs of Windows. It is already included in Windows Vista and Server 2008 SP2. Release candidate for this service pack is presently available from the Microsoft download center.


2.       When will MSI 4.5 be deployed via Windows Update?

 


MSI 4.5 will be on Windows Update as part of future service packs to Windows (see #1, part c). It will not be available independently as a required mandatory update like Windows Installer 3.1 v2.


3.       Is it true that there is a forced reboot required on Windows Vista and Windows Server 2008 with MSI 4.5? Unlike Windows XP and Windows 2003, this reboot can’t be deferred?

 


Yes, it is true that servicing Windows Installer always requires a reboot on Vista and above. The new changes made to the Windows Vista servicing stack in combination with the change made by Windows Update to always have the Windows Installer loaded, causes the update to be “pended” until a subsequent reboot thus generating the mandatory reboot requirement when servicing the Windows Installer. We understand that a reboot can be difficult to absorb for applications taking a dependency on MSI 4.5. Unfortunately, none of the solutions that could be pursued were low cost and low risk enough to be acceptable at that point in the Windows Vista SP1 and Windows Server 2008 ship cycle. However, the growing prevalence of MSI 4.5 (details provided in #1), is mitigating the reboot issue to some extent.


4.       We are considering the possibility of bootstrapping Windows Installer 4.5 with our product’s setup. Is there a single 4.5 redistributable that can cover multiple OS versions and CPU architecture that is of a smaller size?

 


No, there is no single redistributable package to install MSI 4.5. There exist different installation technologies to install a Windows component like Windows Installer on Vista and above OSes versus down-level OSes (Windows XP and Server 2003). Additionally, the binaries itself are different based on OS version and platform architecture.


[Author: Zainab Hakim]
This posting is provided “AS IS” with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm.

Comments (13)

  1. Zac.Boyles says:

    Okay so, as a member of MSDN, TechNet, Partner Source and Connect I install things every day. I always dislike when toolbars invite themselves to participate in another products installation. Now, I do understand it is required to keep in line with the competition. With that said; why is it that I’m still invited to install the Live Toolbar when it’s installed and in use, why is it that I’m still invited to change my home page to Live or MSN when my home page is set to home.live.com and finally, why is it that I’m still invited to change my default search provider when it already is just that!?

    All you’d have to do is check before you ask, that’s it. Actually, if you are concerned with those users experiencing less branding visibility simply change those check boxes to labels and use a happy little image. The consumer will feel appreciated and you won’t waste their time.

    The only thing that could come from the situation described above (users being repeatedly asked to change to an item they already use) is a situation were a consumer is annoyed and changes there settings. Perhaps another situation where they are reminded that they wanted to change their settings.

    I know this isn’t the MSI team’s responsibility but you are the heart of how software gets to customers. I count on you every day as my clients count on you. You can do this for us and get a quick home run, follow up with it and take a grand slam. Think about it, you could technically take over product integration offers all together. Add a product integration table in the package. I’m getting ahead of myself now so I’m just going to outline the core action items on your meshed out desks.

    1. Put out the word for installation packages to check for installed Microsoft products before asking.

    a. MSN home page

    b. Live home page

    c. Live Toolbar installation

    d. Live Search default provider

    2. Want to go above and beyond?

    a. Notify and thank customer for using [product or server here]

    b. If MSN is their home page don’t ask about Live, perhaps a non-intrusive suggestion. This should go both ways.

    I’ll check back and maybe we can find a formal place for this discussion. This is just one of the many steps which will help show just how great Microsoft is.

    Thank you,

    Zac Boyles

    Xcelligent

    Microsoft Managed Gold Partner

  2. Windows Installer Team says:

    Dear Zac,

    Thank you for your comments and suggestion. We will pass on your feedback to the Windows Live team.

  3. Not having a single redistributable is a royal PITA. Who cares if there are different installation technologies? That doesn’t stop you from writing a bootstrapper (say, Instmsi45.exe) that launches/downloads the correct installer based on the platform that the bootstrapper detected.

    Now *I* have to do all that myself just to provide a seamless prerequisite install. And our application can be installed on Windows XP, Server 2003, or Vista. Sigh….

  4. Slightly off-topic but I couldn’t find an explanation for how to install multiple packages using msistuff, which is implied by the following paragraph in the Best Practices page.

    "Do not use a repackaging tool to consolidate several Windows Installer packages into a single package. Instead you can use the Msistuff.exe tool to configure the Setup.exe bootstrap executable to install the packages one after another."

    -dave

  5. foleys says:

    I’m attempting to adopt Windows Installer 4.5 by integrating KB942288 into a Windows XP SP3 installation source, and I think there is a bug in the integration routine. When I install the update on its own, everything seems to work fine. But when integrating the update, the following registry entry is not getting set properly:

    "HKLMSYSTEMCurrentControlSetServicesEventlogApplicationMsiInstallerEventMessageFile"

    The update_sp3qfe.inf file says this value should be "msi.dll", but when running "msiexec.exe /regserver" the value gets set to "msimsg.dll". It appears that in Vista and Windows7 the msimsg.dll file works fine as the message file, but it does not work in XP; XP needs to use the msi.dll file as its message file. Maybe this is just a bug in the msimsg.dll file not working properly in XP?

    This causes a problem when viewing the Application Eventlog. None of the MsiInstaller events display properly, and have the below text in the description field. "The description for Event ID ( xxxx ) in Source ( MsiInstaller ) cannot be found. etc…" This text means the defined EventMessageFile is incorrect. Once I manually change the EventMessageFile value, the event log entrys read as they should.

    Thanks for your time.

    I also posted this in the microsoft.public.win2000.msi discussion groups, so i’m sorry for the duplication, but I honestly didnt know where best to post.

  6. SteveU says:

    Installing Windows Installer 4.5 does not say if it is successful or not. When I go to Services Windows Installer is not there.

    I believe that either .net 3.5 or Live Setup tools or OMNItech support caused problems with Windows Installer.

    Where do I go for help as I have followed all of the general suggestions on technet and other sites in the web

    I have tried registering

    I have tried totally uninstalling and reinstalling and I do not see the service.

    Ironic that windows installer can’t install windows installer.

  7. Tim Owers says:

    Can anyone explain why on some systems, both MSI 4.0 and 4.5 versions of dialog MsiRMFilesInUse will report only PID’s instead of the actual names? I have searched high and low for the smallest of clues yet have found absolutely nothing! If it helps, this only applies to windowless processes, i.e. services.

    Many thanks,

    timowers@gmail.com

  8. Chea Manit says:

    i need to downlaod a Microsoft Windows Insttaller 4.5 /5.0 XP SP2+, Server 2003 SP1+, Vista, and Server 2008

  9. aspen8102 says:

    I created a MSI package which has an embedded msi package (I used the chained msi method in InstallShield 2009).  This chained MSI package installer works on XP, but it failed to install on Windows Home Server. Does anyone have suggestions?

    (I downloaded Windows Install 4.5 for Windows 2003 server, because there is no version for Windows Home Server)

  10. gautam says:

    I’m attempting to adopt Windows Installer 4.5 by integrating KB942288 into a Windows XP SP3 installation source, and I think there is a bug in the integration routine. When I install the update on its own, everything seems to work fine. But when integrating the update, the following registry entry is not getting set properly:

    "HKLMSYSTEMCurrentControlSetServicesEventlogApplicationMsiInstallerEventMessageFile"

    The update_sp3qfe.inf file says this value should be "msi.dll", but when running "msiexec.exe /regserver" the value gets set to "msimsg.dll". It appears that in Vista and Windows7 the msimsg.dll file works fine as the message file, but it does not work in XP; XP needs to use the msi.dll file as its message file. Maybe this is just a bug in the msimsg.dll file not working properly in XP?

    This causes a problem when viewing the Application Eventlog. None of the MsiInstaller events display properly, and have the below text in the description field. "The description for Event ID ( xxxx ) in Source ( MsiInstaller ) cannot be found. etc…" This text means the defined EventMessageFile is incorrect. Once I manually change the EventMessageFile value, the event log entrys read as they should.

    Thanks for your time.

    I also posted this in the microsoft.public.win2000.msi discussion groups, so i’m sorry for the duplication, but I honestly didnt know where best to post.

  11. rishu says:

    i need to downlaod a Microsoft Windows Insttaller 4.5 /5.0 XP SP2+, Server 2003 SP1+, Vista, and Server 2008

  12. Paul Bunyard says:

    Can any body help? my windows installer does not work? I cannot install programs or unistall them?