Deploying OpenOffice 4.1.1 silently using an MSI

I don’t really like OpenOffice. I appreciate its existence, but I try not to use it myself. Some of my users do have a need for it, though – and for it specifically, not just LibreOffice (supported filetypes, not relevant to this post).

Trying to silently deploy OpenOffice is incredibly annoying, though. The downloaded installer extracts files to a user-specified folder. The extracted files include a CAB containing most of the program files; an MSI with most of the installer logic; and an EXE which does very little except handle dialogs for choosing extension associations.

The MSI, unfortunately, is configured to require the EXE to launch it. If you just run the MSI the installation fails.

Much advice online for this sort of rubbish advises you to edit or remove an entry in the LaunchConditions table in the MSI. The entry for OpenOffice is (VersionNT < 600) or (SETUP_USED=1) or Installed.

Editing or removing this does not result in success, however. I think this is something to do with another MSI being extracted to a temporary location, but haven’t bothered to investigate thoroughly.

You can make the MSI bypass the setup.exe requirement by supplying a property on the command line. For example: msiexec /i openoffice411.msi SETUP_USED=1. Putting this property in a transform does not work, however – probably for the same reason that changing the LaunchCondition also doesn’t work.

You can modify the PROPERTY table in the MSI directly, though, and it will retain that property and allow you to bypass setup.exe. Just enter a new PROPERTY called SETUP_USED with a value of 1 and you’re a long way to done. I use InstEdit to do any simple MSI edits or MST generations.

The next big problem is managing the extension associations. There are a number of properties in the MSI related to this. This is from the README accompanying the install, however.

Registration of OpenOffice as default application for Microsoft Office formats can be forced or suppressed by using the following command line switches with the installer:

* /msoreg=1 will force registration of OpenOffice as default application for Microsoft Office formats.
* /msoreg=0 will suppress registration of OpenOffice as default application for Microsoft Office formats.

My experience showed that neither of those do good things. The first will totally supplant MS Office associations. The second will not supplant them, but clear them. Either way, if MS Office is installed, you end up with it not being the default application for its file types.

I created an MST using InstEdit that modified the Registry table. I sorted the Key column alphabetically, then removed any entries pertaining to extensions I wanted unaltered. This MST did seem to apply without issue, and left my file associations alone.

Altogether not much work to make the changes, but a lot of unnecessary hassle caused by design decisions I can’t understand.

Advertisements

One thought on “Deploying OpenOffice 4.1.1 silently using an MSI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s