Remko Weijnen's Blog (Remko's Blog)

About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like

Archive for the ‘Packaging’ Category

Today I wanted to install the Dutch Language pack for Internet Explorer 8, the Dutch language comes as part of the Windows Internet Explorer 8 MUI Pack (in my case the version for Windows Server 2003 SP2).

If you install the MUI Pack you will always end up with all 35 (!) languages installed. This behaviour is the same as the language pack for Internet Explorer 7 that I wrote about earlier (see Modifying Microsoft Updates and/or hotfixes)

The solution is really the same as for the IE7 language pack: you modify the inf file (in my case update_srv03.inf) but if you run update.exe it will refuse to use your modified inf file:


So we need to patch update.exe to accept your modified version!


Unattended Installation of IBM WebSphere MQ

Today I needed to create a silent install for IBM WebSphere MQ, in my case version

I started by reading IBM’s documentation: WebSphere MQ Unattendend (silent) Installation which desribes that we can create a response file using the SAVEINI parameter.

So I recorded a response file and tested the install using the USEINI parameter as indicated by the documentation.

However the installation failed producing only this error message:

One or more problems occured. Review the trace and/or log file for details. (AMQ4739)


Earlier today I wrote about Using the CorrectFilePaths shim to redirect an ini file to a writable location and believe it or not the next application I was working with today needed a nice shim as well.

This one was a little more complicated and that’s why I am writing a second post about it.

I am not sure if this is actuall documented somewhere but a Shim is not applied to Applications or DLL’s that reside in the system directory.

The application in question here is a Visual Basic 6 application which uses the VB6 runtime, msvbvm60.dll which resides usually in %systemroot%\system32.

We need to do two things if we want to apply the shim to msvbvm60.dll:


Today I needed to package an application called PlesirReality and I noticed that it wrote an ini file into the program directory (in my case D:\Apps\PlesirReality).

I looked into this ini file (areastate.ini) and it writes user settings in there, like the last position of the window etc.

We can see this easily with Process Monitor:


This presents us with several problems:

The first problem is that the user does not have write permission in this directory so upon application exit we get an ugly error message:


We could “fix” this by giving the user write permissions to this directory or even to this specific file but here comes the seconds problem:

On a multi user environment like Citrix or Terminal Server/Remote Desktop Services it means that when one user exists he will he save his settings for all users.

And then we have a third problem:

When a users starts the application on another server he will not get the expected settings because each server will have it’s own copy of this ini file.


Packaging an ActiveX Component: Easy?

Today I needed to package an applications that I was told was very simple. If I hear something like that my first thought is always “hmmm”.

So I prepared a machine to build the package and followed the instructions which were to go to a specific URL and download the package (probably an ActiveX control from there).

I opened the URL and immediately got an error message:

The specified LICD is not available

The error message 0x80004005 is not very helpfull since it stands for E_FAIL (winerror.h).


Yesterday I was packaging an application called Kluwer Juridische Bibliotheek. When the user first starts this application a screen with the License Conditions pops up and it must be accepted:


I always try to remove such things as I don’t think it’s necessary for every user to accept it.


Packaging an Application that uses the BDE

Today I needed to package an application that uses the Borland Database Engine (BDE).

The BDE is a database engine/connectivity component commonly used in Delphi and C++ Builder applications. It has been deprecated since 2000 when it was replaced by dbExpress.

But it’s still widely used so you may still find applications that require the BDE.

In my environment I already have a package for the BDE itsself. But the application I needed to package today, needs to have an Alias addded.

This is usually done manually by going into the BDEADMIN control panel applet or by copying the file where BDE saves the aliases (IDAPI32.CFG).

Here is a screenshot of the Alias my application needs (it uses an Interbase database):


I didn’t like the copy approach and didn’t even consider the manual option so I wrote 2 little tools.


This means you are installing the wrong edition, eg x86 version on an x64 OS.

All available version are listed on the MSDN Visual J# Redistributable Packages page.

Related: The case of the VMware vSphere Client

Citrix and Java JRE Versions

If you have ever installed Citrix Presentation Server/XenApp or one of the management consoles then you have probably dealt with Java versions.

Citrix is very picky about the Java version so it’s usually best to initially install the Jre version that is delivered with the product.

In my case however I needed to install the CMC for Xenapp 5 on Windows 2003, it requires JRE 5.0 Update 9 but this version was undesirable.

So I tried to install the CMC with the current JRE version (1.6.0_22 at this time) but it makes the Installer exit immediately: