LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Building Distribution Kit with CVI 8.0.1 Fails After Installing CVI 2010

Solved!
Go to solution

Build Log output:

 

Adding files to installer
 
**************
*** Error: An internal tool or library returned an error. (Error code -21)
**************
*** Error Details:
Error in MDF API function: _MDFBuildDevPartMerger_Load
nmdkLoadMergeModule returned error code 26152
*** End Error Report
**************

 

This has just now happened. CVI 7.1.1 and versions newer than 8.0.1 (i.e. 8.1.1+) work.

Any help would be appreciated.

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 1 of 12
(4,805 Views)

It appears to be related to merge modules. To get some more specifics, please post a debug log file. In CVI 8.0.1, the file must be enabled as follows:

 

  1. Edit your distribution.
  2. Click on any of the tab labels at the top.
  3. Press Ctrl+Shift+L
  4. Exit the dialog.
  5. Build your distribution.
  6. Once the build has failed, the log file, distBuildDbg.log will be in your temp directory (e.g. C:\Users\<username>\AppData\Local\Temp). If you're not sure, just 'echo %temp%' at a command prompt.

Post that file back here, and hopefully I'll be able to see what the problem is.

 

Mert A.

National Instruments

0 Kudos
Message 2 of 12
(4,794 Views)

Hope this helps.

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 3 of 12
(4,784 Views)

We're still trying to track down a direct cause and possible workaround, but I can tell you that the problem is indeed restricted to version 8.0.x and only occurs if your distribution includes a private installation of the CVI Run-Time Engine (i.e. the option to install it to the application directory is checked on the Advanced tab).

0 Kudos
Message 4 of 12
(4,772 Views)
Solution
Accepted by CVI-User

It turns out there are a couple different problems that come up in CVI 8.0 distribution builds when you have CVI 2009 or newer installed:

 

  1. ActiveX Container Support won't be included if you're installing the run-time engine in the application directory, or if you're not including everything under the LabWindows/CVI Run-Time Engine grouping. In either of those cases, the ActiveX Container merge module will need to be used, and CVI 8.0 won't be able to find it.
  2. The Instrument Driver Run-Time merge module (instrsup.msm) and Mesa merge module (NIMesaDLL.msm) cannot be relocated to the application directory (i.e. the option on the Advanced tab I mentioned in the previous post). This will result in the distribution build failing with the error you reported.

To solve the first issue, I recommend making a copy of C:\Program Files\Common Files\Merge Modules\ActiveX_Container.msm, and renaming the copy with a space instead of an underscore ("ActiveX Container.msm").

 

The second issue does not have an easy work-around. If acceptible for your use case, I would suggest either making the run-time installation global (by unchecking the Advanced tab option), or removing the CVI run-time engine from your distribution build. In the latter case, your application would rely on a global CVI run-time engine already being installed.

 

If neither of those will work for you, I can get you copies of the pre-2009 instrsup.msm and NIMesaDLL.msm that you would have to manually swap in and out with the versions in your Common Files\Merge Modules directory whenever you needed to build this distribution in CVI 8.0.

 

I'm sorry about these issues. Let me know if you need those older modules.

 

Mert A.

National Instruments

Message 5 of 12
(4,755 Views)

Thanks a lot!

 

For me installing CVI 2009 didn't break the distribution build of CVI 8. So I copied the 2009 versions of the instrsup.msm and NIMesaDLL.msm back into the Merge Modules directory and the distribution gets build and installs without error.

 

It's yet to test what CVI 2010 does with these files...

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 6 of 12
(4,743 Views)

Just to be sure, I tried installing CVI 8.0.1 and then CVI 2009, and then tried building a distribution in 8.0.1 with a private run-time engine. I did get an error, and could not continue the build. Even after renaming the ActiveX Container merge module, the error remained. The point is, I'm not sure how it's working for you using the merge modules from CVI 2009. My only guess is that somehow you are using older modules than you think. But as long as it's working for you, I guess that's what counts.

 

Mert A.

National Instruments

0 Kudos
Message 7 of 12
(4,730 Views)

Maybe it needs 8.1, 8.5 and 9.0 before 2009. Anyway it works for me - for now...

 

The md5 sums, if you're curious:

fff6f2b1f2f372a424a94624f26eafe6 *instrsup.msm
9c659251c184ee633c13c09e5f6a2d82 *NIMesaDLL.msm

 

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 8 of 12
(4,718 Views)

Just had another Problem with the CVI 2010 msms:

 

A distribution built with CVI 2009 and the 2010 msms took forever to uninstall. After returning to the 2009 msms it uninstalls as fast as older distributions.

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 9 of 12
(4,698 Views)

If you can recreate the slow uninstall scenario, I'd ask you to please try logging the uninstall by running the following command line:

 

[distribution directory]\bin\dp\YourDistName.msi /l*v logfile.txt

 

Running the .msi file directly when it is already installed will trigger an uninstall, and that process will be logged to logfile.txt. If you post that file back here, we might see what's taking so long.

 

Mert A.

National Instruments

 

 

0 Kudos
Message 10 of 12
(4,680 Views)