0
votes

Are there are any templates or guidelines for creating a Windows Installer XML (WiX) project for deploying a Petrel plugin?

Are there any reasons for WiX not having been selected as the natural successor to the old *.vdproj/MSI recommendation?

Has anyone tried WiX for Petrel plugins? I'm interested in exchanging ideas and experiences. I'm new to WiX, and find it difficult to get started.

(Off topic: the "new" PIP paradigm is lean and simple, but is a bad fit for enterprise use, where clients expect to be able to repackage an MSI in order to facilitate mass deployment through e.g. group policies. I'll post another question on this.)

2
What is special about "Wix for Petrel"? Never heard of it.dvallejo
I know how to make WiX do pretty much anything, but these plugins are so specific to your industry that I've never heard of them and don't know what they need done. Can you describe the manual process for deploying one of these plugins?Christopher Painter
The only documentation I've seen is a PDF that shows the use of a UI (plugin manager) to browse to a *.pip and select it for install. It doens't describe any automation interface to invoke to do the same thing non-interactively or describe the physical way the PIP file gets registered with the system. Without any of this information, this question is not answerable.Christopher Painter

2 Answers

3
votes

MSI deployment is still supported in Ocean/Petrel regardless of the way of MSIs generation (and WiX is just another way to generate them).

In Ocean/Petrel 2012.1 you need to define custom action calling command-line tool PluginManager.exe with /install and /uninstall switch during the installation and uninstallation steps respectively. Custom actions are defined using <CustomAction> tags in WiX. There are two tricks you need to keep in mind when calling PluginManager.exe from MSI custom actions:

  • you need to supply your MSI installer ID (usually GUID) in /installerId:your_installer_id command-line switch during the installation. This will enable automatic MSI uninstallation of your plug-ins when Petrel is uninstalled

  • you need to run PluginManager.exe with /runFromInstaller switch during the uninstallation. By doing this you let PluginManager know that you run it from MSI installer, and so there is no need to run MSI uninstallation once more

You can find these and other tips and tricks, with full PluginManager.exe command line speicifications in the Plug-in Identity and Deployment White Paper in Ocean.chm (section "How to use PluginManager.exe in MSI installer").

0
votes

Important information with Petrel 2013:

We have plugins that can be installed or uninstalled using MSI, created with Wix. When installing a PIP with PluginManager.exe without using the argument /installerId:<msi_installer_id> uninstalling the plugin using the Petrel physically deletes all your files, but create an inconsistency in windows uninstaller plugin. If we use the argument /installerId:<msi_installer_id> uninstalling the plugin using the Petrel occurs only logical deleting the plugin, keeping it physically in their original directory. This allows it to be installed subsequently also by Petrel. In the latter case, there is no inconsistency, because the windows uninstall the plugin and be able to delete all your files.

The problem is that uninstalling the plugin using the Petrel 2013 is not calling its MSI uninstaller. It should not be? This looks like a bug.