Page 1 of 1

Base64-encoded references to old assemblies

Posted: Thu Jun 14, 2007 5:50 pm
by 9642458
I upgraded from 2.0.2306.26232 to 2.0.2652.22325.
When I try to run one of my projects I am getting this message:

"Could not load file or assembly 'TeeChart, Version=2.0.2306.26232"

I made sure the reference in Solution explorer was pointing to the new assembly and so did the licenses.licx file.

After some investigation I found out that the problem was in some base64 encoded parameters on the component. These parameters have references to the old assemblies

One of these parameters is:
<data name="gantt1.Labels" mimetype="application/x-microsoft.net.object.binary.base64">
<value> AAEAAAD/////AQAAAAAAAAAMAgAAAFJUZWVDaGFydCwgVmVyc2lvbj0yLjAuMjMwNi4yNjIzMiwgQ3Vs

dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj05YzgxMjYyNzZjNzdiZGI3BQEAAAAhU3RlZW1hLlRl
when decoded this value reveals this information:
ÿÿÿÿRTeeChart, Version=2.0.2306.26232, Culture=neutral, PublicKeyToken=9c8126276c77bdb7!Steema.Te...
which shoes the reference to the old assembly.

How would be your comments or ideas about changing those encoded references?

Posted: Thu Jun 14, 2007 6:37 pm
by 9642458
I managed to encode the version/build of the new library.
If someone else has the same problem see below.

old assembly 2.0.2306.26232
AAEAAAD/////AQAAAAAAAAAMAgAAAFJUZWVDaGFydCwgVmVyc2lvbj0yLjAuMjMwNi4yNjIzMiwgQ3Vs
dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj05YzgxMjYyNzZjNzdiZGI3BQEAAAAhU3RlZW1hLlRl

new assembly 2.0.2652.22325
AAEAAAD/////AQAAAAAAAAAMAgAAAFJUZWVDaGFydCwgVmVyc2lvbj0yLjAuMjY1Mi4yMjMyNSwgQ3Vs dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj05YzgxMjYyNzZjNzdiZGI3BQEAAAAhU3RlZW1h
So what I did I just replaced all references in my .resx files
from uMjMwNi4yNjIzMiwgQ3Vs
to uMjY1Mi4yMjMyNSwgQ3Vs and it works OK.

I am still looking for some feedback in order to avoid having encoded references, so that I will not have to do this again in the future.

Posted: Fri Jun 15, 2007 2:43 pm
by narcis
Hi Kyriacos,

I've been able to reproduce the problem here as follows:

I used penultimate version of TeeChart for .NET v2 for VS2005. Created a new project using mentioned TeeChart version and adding gantt series. Then I removed TeeChart.dll reference, uninstalled TeeChart for .NET v2 penultimate release and installed latest v2 release. Opened the project and added new v2 reference, rebuilt the solution and when openning the form I got that error:

Error 1 Invalid Resx file. Could not load file or assembly 'TeeChart, Version=2.0.2586.24039, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Line 212, position 5. C:\TestApps\VSNET2005\v2Base64Tests\v2Base64Tests\Form1.resx 212 5 v2Base64Tests

However, I was able to solve the problem in an easier way, as told here, removing the base64 tag.

Original code in .resx file:

Code: Select all

<data name="gantt1.Labels" mimetype="application/x-microsoft.net.object.binary.base64">
Modified and working code:

Code: Select all

<data name="gantt1.Labels" mimetype="application/x-microsoft.net.object.binary">
I've added the defect (TF02012262) to our wish-list to be investigated for next releases. However, .resx files code is produced by visual studio, so there may be little we can do here.