This is a migrated thread and some comments may be shown as answers.

Reporting Q2 2012 Any CPU

2 Answers 76 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Nawid
Top achievements
Rank 1
Nawid asked on 22 Jul 2015, 01:37 PM

Hey there,

 

We bought some time ago the telerik system (reporting) for a solution, that we set up for a custumor. This solution was build as a 32bit application and shall be now comiled with the option "any cpu". Unfortunatly the reference to the 'telereik'-Reporting dll is based on a 32bit system.

 Is there anyway that we get the Reporting Q2 2012 Any CPU Dll.

The needed dlls are :

1. Telerik.ReportViewer.WinForms.dll

2. Telerik.Reporting.dll​

 

Best regards

nawid

 

 

2 Answers, 1 is accepted

Sort by
0
David
Top achievements
Rank 1
Iron
Veteran
Iron
answered on 22 Jul 2015, 03:37 PM

First, be it known that I do not work for Telerik so if they have any better ideas, I would also like to hear them.

What you are experiencing is the "evil" nature of the "Any CPU" setting.  As you cannot mix environments (32 / 64), your entire app must be either 32 or 64 bit.  Any DLL library referencing a 32 bit library must call said library from a 32 bit thread.  If it tries to do so from a 64 bit thread things go really wrong.  The reverse is equally true.  Now when you compile with a "Any CPU" setting you, in theory, work either situation but not mixed.

 If I have a third party .DLL, of which I have no control, I compile my apps with explicit CPU binding.  I.E., 32 or 64 bit CPU.  

 Now I have also found that DLL's (not exe's) compiled in a "Any CPU" setting seem to work in either environment (not both) without recompilation when called from either a 32 bit or 64 bit thread.  They take their final "settings" (or so it seems) from the caller thread.  This means I move all calls to a specific .EXE which is explicitly compiled as either a 32 or 64 bit project.  They can therefore reference .DLL's based upon the caller not the destination environment.  That eliminates the "bug" you are getting.

0
Nawid
Top achievements
Rank 1
answered on 23 Jul 2015, 07:19 AM

Hey David,

thanks for your reply.

The best choice is mostly "Any CPU", because as you mentioned these ones run on both enviroments as it is the name if the game ;)

And here on my dev. system i am able to bind the .dlls from the x86 to the "Any CPU" solution..

BUT:

In some ways the report "initializecomponent"-Method of the report instances takes way too long, maybe 20 times more then the setting "x86"...

So the only option is to try it with "telerik.reporting.dll" for "Any CPU" or throw telerik out of the solution and ​use another reporting system. (Or compile it with x86-settings, which is limited as the reports, with drillldown may grow way too big in memory usage)
Tags
General Discussions
Asked by
Nawid
Top achievements
Rank 1
Answers by
David
Top achievements
Rank 1
Iron
Veteran
Iron
Nawid
Top achievements
Rank 1
Share this question
or