Build Error for x64

0

No issue building project with older version ( v3) where there was only set of dll and since project target settings are set for "Any CPU". It built fine for both x86 and x64 builds and ran fine on both Win32 and Win64 boxes.

Downloaded and wanted to try the latest Teechart 2012 version ( 4.1.2012.7136) Now that Steema is providing both x64 and x86 dll's, I want to use optimized x64 dll's

Question 1: Is my understanding correct ? Why two version of TeeChart dll's in the newer version ?

Build Test 1: x64 project build with new x64 TeeChart dlls Copied dll's from folder C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x64\ to the project folder. This because I want to build with x64 dll's

Get 2 kind of build errors when building x64 build: Error1 'Could not load file or assembly 'TeeChart, Version=4.1.2012.7136, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. An attempt was made to load a program with an incorrect format.'

Error2: 'Could not load file or assembly 'TeeChart, Version=3.5.3225.32185, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. Invalid pointer (Exception from HRESULT: 0x80004003 (E_POINTER))'

Question2: Do i need to update all licenses.licx files in the project ? I know these are generated automatically when adding TChart ? How do I handle situation when I am just updating TeeChart libraries ?

Question 3: Why two different kind of errors ? All licenses.licx currently have text containing Version=3.5.3225.32185. I tried manually updating all licenses.licx files to the newer version but was not helpful.

Build Test 2: x64 project build with new x86 TeeChart dlls Copied dll's from folder C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x86\ to the project folder.

Everything Built fine and ran fine

Question 4: How did this build fine without any updating of licenses.licx files in the project?

teechart
asked on Stack Overflow Jul 24, 2012 by (unknown user)

3 Answers

0

Question 1: Is my understanding correct ? Why two version of TeeChart dll's in the newer version ?

That's to leave all the options to the user regarding possible environment combinations.

Build Test 1: x64 project build with new x64 TeeChart dlls Copied dll's from folder C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x64\ to the project folder. This because I want to build with x64 dll's

Get 2 kind of build errors when building x64 build: Error1 'Could not load file or assembly 'TeeChart, Version=4.1.2012.7136, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. An attempt was made to load a program with an incorrect format.'

Besides copying the assembly have you updated the TeeChart.dll reference in your project? You could try removing it and assigning it to the x64 assembly.

Error2: 'Could not load file or assembly 'TeeChart, Version=3.5.3225.32185, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. Invalid pointer (Exception from HRESULT: 0x80004003 (E_POINTER))'

You should probably update licenses.licx to the new version or use a minimal version agnostic licenses.licx as explained in tutorial 17. Tutorials can be found at TeeChart's program group.

Question2: Do i need to update all licenses.licx files in the project ? I know these are generated automatically when adding TChart ? How do I handle situation when I am just updating TeeChart libraries ?

I recommend you using a versionless licenses.licx as told in previous reply.

Question 3: Why two different kind of errors ? All licenses.licx currently have text containing Version=3.5.3225.32185. I tried manually updating all licenses.licx files to the newer version but was not helpful.

Probably because there are 2 issues: 1, the project can not find the TeeChart reference to which it was set. 2, the version of the TeeChart assembly found doesn't coincide with licenses.licx settings.

Build Test 2: x64 project build with new x86 TeeChart dlls Copied dll's from folder C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x86\ to the project folder.

Everything Built fine and ran fine

Question 4: How did this build fine without any updating of licenses.licx files in the project?

Maybe because the project TeeChart.dll reference hadn't been updated and was still pointing to a x86 TeeChart version.

answered on Stack Overflow Jul 26, 2012 by NarcĂ­s Calvet
0

Besides copying the assembly have you updated the TeeChart.dll reference in your project? You could try removing it and assigning it to the x64 assembly.

I am copying over the existing dll's then why would I have issue with references in the projects. Anyway I tried removing reference and adding them back just for the heck of it but that didnot make the error go away. I ended up adding x86 dll's in the project references and ofcourse updating licenses.licx to point to newer version and it builds x64 build fine. However, in order to get full optimization for x64 box, I am copying x64 dll's into the application folder. It runs fine.

This solves two problems:

1: Visual Studio designer needs x86 dll's so referencing x64 dll's in project references is not an option if we want to make any changes to UI using designer.

2: Fixes the build error for license compiler as outlined earlier.

Now I am thinking the Error '*Could not load file or assembly 'TeeChart, Version=4.1.2012.7136, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. An attempt was made to load a program with an incorrect format*" was genuine as it's coming from license compiler and just like designer it needs x86 dll's in the project references.

What do u think?

answered on Stack Overflow Jul 26, 2012 by (unknown user)
0

Question 1: Is my understanding correct ? Why two version of TeeChart dll's in the newer version ? That's to leave all the options to the user regarding possible environment combinations.

I understand the flexibility. What I was trying to get an answer for was intention of having separate dll's in newer version. It used to be just one set of dll's back in 2008. So why now x64 and x86 version. I didnot see any help or release notes explaining the difference. Is x64 dll's optimized during runtime on x64 ?

answered on Stack Overflow Jul 26, 2012 by (unknown user)

User contributions licensed under CC BY-SA 3.0