I have a problem which I do not know whether comes from Ranorex or not. I need a little help.
I'm using the evaluation version 1.4.
By mistake I used the "FindControlName" method instead of accessing the control with "Element.FindChild" method.
By doing this I consistently get an C++ runtime error. By debugging I can see that the error comes from FindControlName call. If I use the Element approach instead I get no error. I'm trying to access a custom .Net control.
I have no C++ code in my project - only C#.
C++ runtime libraries loaded incorrectly
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
FindControlName() uses RanorexSpy.dll which depends on the CRT 8.0 runtime.
Please try to install the VC++ Runtime 8.0 SP1 Redist Package
http://www.microsoft.com/downloads/deta ... 9c36f85647
Michael
Ranorex Team
Please try to install the VC++ Runtime 8.0 SP1 Redist Package
http://www.microsoft.com/downloads/deta ... 9c36f85647
Michael
Ranorex Team
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
I've checked all of the dll's and they are the correct version. The application I'm testing has been compiled with Visual Studio 2008 and uses both the 2005 and the 2008 C++ runtime. I've installed both runtimes and the service packs - error is still present.
If I look up the R6034 errorcode on MSDN it says something about a missing manifest file - but how can I know which application is missing the manifest? Would that be the application being tested, my executable or ranorex?
As far as I understand Windows should be able to handle side-by-side sharing of assemblies without much trouble.
Application under test (new version - VS2008 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.4 = works
Application under test (new version - VS2008 compiled) + Ranorex 1.4 = error
The error might be in my code or test application but how can I identify this and correct it?
Thank your for you help.
If I look up the R6034 errorcode on MSDN it says something about a missing manifest file - but how can I know which application is missing the manifest? Would that be the application being tested, my executable or ranorex?
As far as I understand Windows should be able to handle side-by-side sharing of assemblies without much trouble.
Application under test (new version - VS2008 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.4 = works
Application under test (new version - VS2008 compiled) + Ranorex 1.4 = error
The error might be in my code or test application but how can I identify this and correct it?
Thank your for you help.
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
I've figured out that I get the error by just spying on the controls (with RanorexSpyPro) in the application under test. Which means that the error must be in either Ranorex or my application under test.
I've tested on several different machines and the error persists.
Edit: I've examined the matter further and it seems that the error also comes if I use the RanorexSpy 1.2 - which tells me that it's my application under test that causes the failure.
Thank you for your time
I've tested on several different machines and the error persists.
Edit: I've examined the matter further and it seems that the error also comes if I use the RanorexSpy 1.2 - which tells me that it's my application under test that causes the failure.
Thank you for your time
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
Does the error happen only if you compile the application with VS2008 and you use the function FindControlName?Application under test (new version - VS2008 compiled) + Ranorex 1.4 = error
Is this correct?
What happens if you compile with VS2008 but you do not use the function FindControlName?
Jenö
Ranorex Team
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
It does fail consistently with the FindControlName method but I've seen it fail also when I'm not using FindControlName (eg. Form.Element.FindChild).
I will try to get the developers of the test application to compile a VS2005 version which is exactly the same as the one compiled in VS2008 - just to see if the error really has something to do with Visual Studio 2008.
I will try to get the developers of the test application to compile a VS2005 version which is exactly the same as the one compiled in VS2008 - just to see if the error really has something to do with Visual Studio 2008.
-
- Posts: 44
- Joined: Fri Oct 26, 2007 1:18 pm
I've solved the problem with the C++ 2008 runtime.
It was the manifest that caused the problem. I made a manifest for RanorexCore.dll, RanorexSpy.dll and one for my own application. Using these manifests I no longer get the error.
The manifests all look like this:
Anybody else who has problems with testing an application build under Visual Studio 2008 may have luck using this manifest.
Thank you for your time.
It was the manifest that caused the problem. I made a manifest for RanorexCore.dll, RanorexSpy.dll and one for my own application. Using these manifests I no longer get the error.
The manifests all look like this:
Code: Select all
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Thank you for your time.