07-19-2011 09:22 AM
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.
Solved! Go to Solution.
07-19-2011 04:27 PM
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:
Post that file back here, and hopefully I'll be able to see what the problem is.
Mert A.
National Instruments
07-20-2011 04:04 AM
Hope this helps.
07-20-2011 05:56 PM
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).
07-22-2011 11:51 AM
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:
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
07-25-2011 03:41 AM - edited 07-25-2011 03:42 AM
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...
07-25-2011 12:46 PM
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
07-26-2011 06:26 AM
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
09-23-2011 08:01 AM
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.
09-28-2011 03:12 PM
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