03-25-2011 10:49 AM
Hi,
I have started to use CVI 2010.
I loaded one of my projects which runs perfectly with CVI2009 but as I wanted to create a distribution kit I got the following error
How can I solve it?
In fact the application is not running on a user computer. I get the error Mesa.dll is missing.
I'm working with Win7
Bertrand
03-25-2011 10:54 AM
03-25-2011 02:56 PM
The ActiveX container error is probably unrelated to the Mesa.dll error. I can guess at what is causing that missing modules popup (for the Mesa.dll error, we'll probably need additional information from you)
I assume you have deselected the top-level "LabWindows/CVI Run-Time Engine" item in the Drivers and Components tab of the Edit Distribution dialog and then selected one or more of its sub-items. Or, alternatively, you have selected the "Install LabWindows/CVI Run-Time Engine in the application directory" option in the Advanced tab. If you haven't done either of these, then this error should not happen.
Does your application use ActiveX controls? If not, then you can de-select the "ActiveX Container Support" sub-item in the Drivers and Components tab and the error will also go away without any negative impact in your distribution.
The probable reason for this error is that you somehow ended up with updated VC90 modules in your computer but the newer modules have different signatures, such that they no longer match the expected signatures of the declared dependencies of the ActiveX container module. If you do use ActiveX controls, and you also need the "Install LabWindows/CVI Run-Time Engine in the application directory" option or you need to keep your distribution small (which is the reason why you wouldn't have the top-level "LabWindows/CVI Run-Time Engine" item selected, then you can work around this problem by clicking the Add Module button in the Drivers and Components tab and adding the two following modules from your C:\Program Files\Common Files\Merge Modules folder (C:\Program Files (x86)\Common Files\Merge Modules if you're in a 64-bit operating system):
Microsoft_VC90_CRT_x86.msm
Microsoft_VC90_MFC_x86.msm
You will still see the error popup if you click on the Check Module Dependencies button, but there shouldn't be any problem at all.
Luis
03-28-2011 04:38 AM
Thank you Luis for your comments.
First I answer your questions:
Yes my application uses 2 ActiveX controls (Graph3D from CVI and Virtual serial port from another provider)
I did not check "Install LabWindows/CVI Run-Time Engine in the application directory" option in the Advanced tab
In order to keep my distribution kit small I checked in the "LabWindows/CVI Run-Time Engine" only the following items:
Until Labwindows 2009 my application runs with these settings without problems.
In fact my biggest issue is the Mesa.dll error.
It is by reading other posts from this forum dealing with Mesa.dll errors that I checked the dependencies and thought that the 2 errors where related.
I made a test with the complete Run-Time engine (all items checked). In that case the dependencies problem disappears but the new distribution kit does not install properly and sends an error at 45% progress "Installation has failed".
What now?
Bertrand
03-28-2011 11:56 AM
Okay, let's try to take those two symptoms in turn. If I understand your symptoms correctly, this is what is happening:
1. If you build a distribution with the reduced run-time (standard, activex and analysis), and no other component, when you install this distribution in a clean, Win7 OS, you see the mesa.dll error when you run your application.
Please check if you have the following file installed in the target computer, and let me know:
C:\Program Files (x86)\National Instruments\Shared\Mesa\Mesa.dll
2. If you try to build a distribution with the full CVI run-time, you see an error when you try to install it.
a) Please try logging the installation by using the following command-line argument:
setup.exe /log <logfile>
Then, attach the log file here in the forum, if you can.
b) Also, please try creating an identical distribution for any one of the CVI examples in the samples\userint folder and let me know if you see the same error when you try to install it.
Luis
03-28-2011 03:14 PM
Hi,
1/ Build with reduced CVI Runtime
You are right but the target computer is on XP not Win7. The development computer is on Win7.
After installation the file C:\Program Files\National Instruments\Shared\Mesa\Mesa.dll is present on the computer
I made a test with the CVI example ...\samples\userint\activeX\3DGraphs.cws and I got the same error "Mesa.dll not found"
2/ Build with full CVI Runtime
a/ Please find attached the logfile
Thanks for helping
Bertrand
03-29-2011 01:54 PM
1. Okay, let's try this. If you don't already have it, download and extract dependency walker. Run it, and load your executable (File>>Open). Once it's loaded, select Profile>>Start Profiling. This should start your program, while logging some important information. Make sure you get to the point where you see the error, then exit your program. Then, back in Dependency Walker, select File>>Save and then attach the .dwi file that you saved here in the forum
2. Thanks for posting the log file. We're still looking at it, and I'll let you know when I find out some more. By the way, it was in connection with problem that I had asked you to test building a distribution for an example. So, in the meanwhile, can you test building a distribution, with the default settings (full runtime), for samples\userint\activeX\3DGraphs.cws and let me know if it also has the same installation error?
Thanks,
Luis
03-29-2011 03:36 PM
Hi,
1/ Please find attached the dwi log file for the Graph3D sample with reduced Runtime engine which produces the Mesa.dll error. I did not use my own Program because the sample program gives the same error and is munch smaller. I hope this is fine for you.
2/ Installation logfile for sample Graph3D with full RTE. In this case I experience no problem and everything is working.
Bertrand
03-30-2011 05:31 PM
Hello Bertrand,
Okay, I think we got to the bottom of the first problem. It is actually similar to the ActiveX container problem, in that it's a case of missing dependencies. In this particular case, the problem is being caused by a bug in the NI Mesa redistribution merge module which results in a bad installation when you install the reduced CVI runtime on a bare-bones Windows installation.
You should be able to work around this problem by adding these two merge modules from the C:\Program Files\Common Files\Merge Module folder (by clicking on the Add Module button in the Drivers & Components tab):
C:\Program Files\Common Files\Merge Modules\Microsoft_VC90_CRT_x86.msm
C:\Program Files\Common Files\Merge Modules\policy_9_0_Microsoft_VC90_CRT_x86.msm
As for the second problem, we're still researching it and hope to have an answer for you soon. We're pretty sure that it's being caused by an .inf file that you might be including in the distribution. If you were to not include it, the error probably wouldn't happen. Hopefully, I'll have a better answer for you some time in the next few days.
Luis
03-31-2011 07:38 AM
Hello Luis,
Adding the modules you asked for resolves the problem in the Graph3D sample but in my application I get now the same error at installation (Installation has failed) as with the full Runtime engine.
There are in fact .inf files in my distribution needed for the Virtual Serial Port ActiveX. But I didn't change anything since I switched to CVI 2010 and in CVI 2009 everything was fine.
Bertrand