LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Troubles creating an upgradeable IVI driver installer

Solved!
Go to solution

I am having problems when trying to create an upgrade installation for an IVI driver.
I created the installer using the IVI Installer Creator included with LabWindows/CVI 2010. In my case I have two versions of the IVI driver DLL and setup (1.0 and 1.1 each).
The 1.1-setup has been created using the 'Rebuild Existing Installer' option of the Installer Creator.

 

My problem is as follows:

  • If the IVI driver is not installed the 1.1-setup completes without errors. 
  • However, if the 1.0 driver is present, the 1.1 installer gives me the following error message right at the beginning of the installation: 
    'Setup has detected a third party IVI driver in C:\Program Files (x86)\IVI Foundation\IVI\Bin directory. Please uninstall the existing driver before proceeding with this installation.'

 

Things I've noticed so far:

  • The MSI UpgradeCode stays the same for both setups (as expected). This seems to indicate that the installer supports upgrades.
  • The installer contains a DLL (NiIviDriverDetection.dll) that used in a CustomAction to perform the 3rd party checks.
    What this DLL seems to do, is to perform a version check of the currently installed IVI driver DLL (1.0 in my case).
    Based on the results of this check, the installation process is aborted.

Has anyone else noticed this behavior or has anyone any suggestions on how to create an IVI driver installer that can be upgraded without uninstalling the old version first?
Maybe I just set some version information field incorrectly, but I don't know which one (if any)...

 

Any hints would be greatly appreciated!

0 Kudos
Message 1 of 2
(2,931 Views)
Solution
Accepted by topic author fos4X

I seem to have found a solution:

 

The problem is, that the MSI CustomAction that searches for the third party IVI drivers (DetectAction.C1C4DD2F_AD86_44E6_BA47_FC41E5C0DAAF) is executed before the FindRelatedProducts-Action.

Therefore the DetectAction is not skipped if an old version of the IVI driver is found (as looking at the MSI tables clearly was intended by NI).

 

Moving the sequence numbers of the actions 103 through 107 behind the FindRelatedProducts-Action in both the InstallExecuteSequence and InstallUISequence tables (e.g. beginning at 370) will make it possible to do an upgrade installation of an IVI driver.

This can be accomplished using the Orca tool included in the Windows SDK.

Message 2 of 2
(2,900 Views)