Login to participate
Endpoint Management & Virtualization ArticlesRSS

Wise Package Studio, Part 10: Orca, What is It and Why Do We Need It?

erikw's picture

We use Wise Package Studio to do several tasks. Especially when we need software that is packaged and validated against our company's standard. These packages are packaged as so called MSI packages. The packages we build with Wise Package Studio are said to be the best packages for YOUR environment and we check if the packages have no conflicts with other packages. That is why we maintain a software database. All packages that we build should be checked against this database.

When we build and configure MSIs, we have to comply with several other rules also. Several applications break these rules. This is what we call ICE (Internal Consistency Errors) errors.

On the Juice there are several good articles about ICE errors. One of the best can be found by clicking on the link: About Internal Consistency Evaluator (ICE) Error Validation

Quote: "Validation is very important; it finds all sorts of problems with per-user installations, collisions between installed files, and other common mistakes that are hard to catch until the complete MSI file is built. Often, when debugging a set-up problem, I've found that just running validation would quickly find the mistake(s). So if validation is so important, why doesn't everyone run it? There are a few reasons: some people simply aren't aware of MSI validation, others are lazy, and the great majority of people simply just forget because it's an optional step."

To check if a package that we have build contains ICE errors we can use Wise Package Studio. But most peers I know use a different program to perform this task. The tool is called Orca and it is a Microsoft MSI editor. Orca can be downloaded with the Microsoft SDK.

In this article I'm going to guide you through the installation of Orca and making the first steps into ICE error checking.

Orca is part of the Windows SDK. To get the software you need to download and install the whole SDK.

The latest version can be found by selecting the link: http://www.microsoft.com/downloads/details.aspx?Fa...

This link will first require you to validate if you have a valid Windows Operating System license before it enables the download link.

The complete download is 1178 MB, so take your time to download it.

NOTE: For some reason you need to download and install over 1178 MB of software just to get a 2 MB software package. And believe me, this is not the first time I saw this. It seems to be a Microsoft policy to do it this way. Orca cannot be found anywhere else on the internet, as far as I could see, in a manner that you only get a 2 MB download.

When you have downloaded the SDK, you will see that it is an ISO file. So first step is to mount the ISO file. You can use Daemon tools to mount the image. In VMware you can also mount it by selecting the CD player and point it to the ISO file.

If you do not have Daemon tools or want to know more you can follow the link: SVS Packaging Best Practices, Part 2: Packaging Daemon Tools

This article helps you in downloading and installing daemon tools.

When the ISO file is mounted you will see the welcome screen.

Click Next to continue.

Then you get the license agreement screen. You have to agree with the license and click Next to continue.

Select the default paths where you would like to install the software. In my case I keep it on the default selection that is in the package. The second line is for the samples. You can locate the samples on another drive if you like. Keep in mind that you need over 2.4 GB of disk space to install the Windows Software Development Kit successfully.

Now you have to select what software you like to install. I only install the software for the 32 bit system. Select the software you want and click Next to continue. Then again click next to install all the software on your computer. This will take some time, so it's time to grab a cup of coffee.

NOTE: When you do not want to install the whole software you can deselect everything except the option Debugging tools for Windows. This section will copy Orca to the correct location.

When the installation is completely finished you only have to click Finish.

The next step is to find Orca. Browse to c:\ program Files\ Microsoft SDKs\ Windows\ v6.0\ Bin. There you will find Orca.msi.

Start the installation by double clicking on it.

You now get the Welcome screen. Click Next to continue. Then select I accept the terms in the license agreement and click Next. Now you can choose what options you wish to install. I select the complete installation and click Next to continue.

Now you only have to click Install to start the installation.

In your start menu you now find a shortcut Orca under Programs. Double click it to start the Orca MSI editor.

Go to File Open and select the MSI you want to edit. I use the first MSI we built in this series of articles, and that is Abiword.

As you see, you now have various options. For instance, go to Dialogs and there you will be able to edit the Dialogs that will appear when a user does an install.

This guide will help you to check for ICE errors, so we are going to see if Abiword is ICE compliant.

Go to tools and select Validate.

Now you have to select an evaluation file that you wish to use. Abiword is built for my Windows XP environment so I select the Windows XP logo test evaluation file. In the field ICEs to run you can type a specific IC error. Then you have to deselect Show "INFO" Messages. Now just click Go to test for all ICE errors.

Below you will find the table of errors that are found.

ICE03 WARNING String overflow (greater than length permitted in column); Table: RadioButton, Column: Text, Key(s): ShutdownOption.1
ICE03 WARNING String overflow (greater than length permitted in column); Table: RadioButton, Column: Text, Key(s): ShutdownOption.2
ICE03 ERROR Table: WisePathReplacement Column: Registry_ Missing specifications in _Validation Table (or Old Database)
ICE03 ERROR Table: WisePathReplacement Column: Attributes Missing specifications in _Validation Table (or Old Database)
ICE15 ERROR MIME Type 'application/abiword' referenced by extension 'abw'.'AbiWord.exe' does not map to an extension with a circular reference.
ICE15 ERROR MIME Type 'application/abiword-template' referenced by extension 'awt'.'AbiWord.exe' does not map to an extension with a circular reference.
ICE15 ERROR MIME Type 'application/abiword-compressed' referenced by extension 'zabw'.'AbiWord.exe' does not map to an extension with a circular reference.
ICE23 ERROR Dialog Resume_Install_Dialog has dead-end tab order at control Bitmap32.
ICE33 WARNING Reg key registry18 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.

So now we can do things. We can leave the MSI as is, or we can remove the ICE errors by going to the appropriate tables etc. to resolve the errors.

Orca will help you to find the various errors, because they are marked in the program.

In the example you see that there is a red line before Extension and when you browse you will see the same red line in the table where the error is.

Now you are able to find the error and resolve it. The error that needs to be resolved is always given in red.

ICE errors do not specify an error. We even create ICE errors to give the MSI specific functionality. Before you remove ICE errors, please make sure you understand what you are doing, and eventually you will learn how to make your packages as good as it gets. But do not try to make all your packages ICE error free. It is not necessary. Also the fact that a package contains an ICE error will not make it a bad package. There are several reasons why an ICE error occurs without the need to remove it.

As already mentioned there are more articles on the Juice about ICE errors that can help you in understanding and the prevention of many ICE errors.

Wise Package Studio, Part 9: Packaging the WAIK - Windows Automated Installation Kit

Wise Package Studio, Part 11: Testing Our Packages

 

R-Vijay's picture

Another advantage of Orca..

Creating MSTs for complex MSIs is very easy with Orca. Its because, when we save a table entry in Wise/Installshield it saves all the tables and checks for Media again. However, in Orca it just saves the modified table.

Moreover, Orca is a light wieght editor for validating packages.

Cheers'
Vijay

Microsoft MVP [Setup-Deploy]
Weblog: www.msigeek.com

MaggieH's picture

This link will take you to a

This link will take you to a document I created some time ago, with a lot of ICE errors and their solutions.

https://www-secure.symantec.com/community/download...

It makes it easy to find your ICE error.

~Maggie

erikw's picture

Thanks ~maggie

I saw the document you wrote, and it is very usefull, but i could'nt find it any more.
thanxss for pointing out to this.

regards
ErikW

Regards
Erik
www.DinamiQs.com
Dinamiqs is the home of VirtualStorm (www.virtualstorm.org)

piyushnasa's picture

The story of ORCA

Nice article.
I just thought that people may be interested to know the story of how and why ORCA was developed. Here is an article which I found on net which will be interestging to read:
http://blogs.msdn.com/robmen/archive/2003/10/11/56...

Piyush Nasa
Altiris Certified Professional (ACP)

darude's picture

download orca

Orca is also part of the Windows Installer 4.5 SDK, which can be downloaded separately now and is only a few megabytes. No need to download the complete Windows SDK anymore.

csteddy's picture

a free lightweight alternative to Orca

 I use InstEd from www.instedit.com as it has more functionality than Orca and is also free.