Thursday, November 13, 2008

How to hack an MSI to install on an older version of Windows

I sometimes use Windows 2000 and some installers will only install on a higher version of windows. This method isn't an exact science but will sometimes allow you to install MSI's on older versions of Windows.

First of all I use a tool from Microsoft called Orca. It allows you to edit the database information contained inside of an MSI. You should probably generate transforms and use those to install instead of altering the original MSI file.



The first thing you should do is try and install the file using the MSI itself. If it does install, then great, you don't have to do anything. If it gives you an error message such as "This program will only install on Windows XP SP2 or higher", then you should try and edit the MSI file. I'll briefly go through the process of editing the installer for Crystal Reports 2008.

I opened up Orca and did a search for the error message I was getting. I found the error under the "Launch Condition" section of the installer. All I had to do was delete that line then it passed that area of the installer perfectly.

I ended up getting a second error message "PIDKEY passed to installer is invalid. Quit Setup.". All I had to do was search for that message and found that under the "Action" column was "KeycodePassedIsInvalidMsg". So that meant that this was the action applied from some condition. Doing another search for "KeycodePassedIsInvalidMsg" revealed the condition. Turning that condition into an expression that is always false such as "1=2" fixed that error right away.

After fixing that, I was able to install the program on Windows 2000 and it seems to work perfectly. No guarantees though.

2 comments:

  1. Excellent article ... I am now running Crystal Reports 2008 on Windows 2000 machines thanks to this blog :)

    Only had to change the Win XP SP2 condition tho, NOT the PIDKEY to get the MSI to work.

    ReplyDelete