THE SQL Server Blog Spot on the Web

Welcome to SQLblog.com - The SQL Server blog spot on the web Sign in | |
in Search

John Paul Cook

Using Orca to Fix Installation Problems on Windows 7

I'm talking about installing programs on Windows 7, not installing Windows 7 itself. Keep in mind that the Windows 7 family includes both the Windows 7 client desktop and Windows Server 2008 R2.

Some programs will not install on Windows 7 even though they'll run just fine without any problems whatsoever. When an msi file has a LaunchCondition that excludes Windows 7, the installation will fail. Here's an example of a LaunchCondition that prevents an application from being installed on Windows 7:

(VersionNT = 501 And ServicePackLevel > 1) or (VersionNT = 502) or (VersionNT = 600)

This can easily be fixed by using Orca, a free utility from Microsoft. Orca is part of the Windows SDK. You can download and install the entire Windows SDK for Windows Server 2008 and .NET Framework 3.5 iso (1.3 GB) from Microsoft or just Orca (1.8 MB) from Softpedia. If you download the SDK, you only need to install the Win32 Developer Tools part of it. Within C:\Program Files\Microsoft SDKs\Windows\...\Bin, find Orca.msi and install it. Although Orca is an application that is installed, it can also work as a portable application. After installing Orca, I was able to copy the Orca files to a USB memory stick and run Orca without installing it. It's part of my DBA toolkit on a stick that I wrote about previously.

To edit an msi file using Orca, you'll need to Run as administrator on Vista, 2008, and Windows 7. Select the LaunchCondition in the left pane and then select the problematic condition in the right pane. Notice that you have two options for implementing a workaround:

1. Delete the condition altogether (Right-click the condition and select Drop Row).

2. Edit the condition (set focus to the cell and edit the text of the Condition).

   

In this example, either of these corrections allows the installer to succeed on Windows 7:

(VersionNT = 501 And ServicePackLevel > 1) or (VersionNT = 502) or (VersionNT = 600) or (VersionNT = 601)

(VersionNT = 501 And ServicePackLevel > 1) or (VersionNT = 502) or (VersionNT >= 600)

If you are editing an msi that is deployed to customers, it's best to specify which versions of Windows that you know will work. If you want to leave things open ended, you can switch the = to >= as shown in the second example. If you're just doing some quick testing of Windows 7, I recommend simply dropping the row.

After completing your edits, save your changes and then exit Orca. The edited msi file is now ready to be successfully run in the Windows 7.

Published Friday, February 13, 2009 7:30 PM by John Paul Cook

Attachment(s): OrcaDropRow.jpg

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

David said:

Im trying to install a program on Vista, but the msi condition reads as follow, and I dont know what part to modify on ORCA. Can you help me please?

1 OR %FORCE_MSI_UPGRADE OR FORCE_MSI_UPGRADE OR %FORCE_MSI_UPGRADE_NT OR FORCE_MSI_UPGRADE_NT OR Version9X OR (VersionNT < 500)

%FORCE_MSI_UPGRADE OR FORCE_MSI_UPGRADE OR Version9X OR (VersionNT > 351)

July 23, 2010 12:01 AM
 

John Paul Cook said:

Make a copy of the msi and try several different things. The first thing to try is to delete those conditions. Another thing to try is removing the last OR condition. There's always some trial and error involved.

July 23, 2010 12:30 AM

Leave a Comment

(required) 
(required) 
Submit

About John Paul Cook

John Paul Cook is both a Registered Nurse and a Microsoft SQL Server MVP experienced in Microsoft SQL Server and Oracle database application design, development, and implementation. He has spoken at many conferences including Microsoft TechEd and the SQL PASS Summit. He has worked in oil and gas, financial, manufacturing, and healthcare industries. Experienced in systems integration and workflow analysis, John is passionate about combining his IT experience with his nursing background to solve difficult problems in healthcare. He sees opportunities in using business intelligence and Big Data to satisfy healthcare meaningful use requirements and improve patient outcomes. John graduated from Vanderbilt University with a Master of Science in Nursing Informatics and is an active member of the Sigma Theta Tau nursing honor society. Contributing author to SQL Server MVP Deep Dives and SQL Server MVP Deep Dives Volume 2.

This Blog

Syndication

Powered by Community Server (Commercial Edition), by Telligent Systems
  Privacy Statement