Using .Net 1.1 Assembly with Visual Studio 2008

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
Thomas Hoekstra
Posts: 9
Joined: Wed 02 Apr 2008 13:35

Using .Net 1.1 Assembly with Visual Studio 2008

Post by Thomas Hoekstra » Thu 03 Jul 2008 13:52

Hi.

Please dont' ask why I have to do this, it's a long story...

I need to use an old .Net Assembly with references to Version 4.35.27.0 (.Net 1.1) in a Solution with .Net Framework 3.5.

At first, I got a TypeLoadException, as discussed in another thread in this forum. After reading this thread, I removed the .Net 2 Version from the GAC and added a reference to the old assemby to my project, togesther with an appropriate ReferencePath. Now I get another exception: The Manifest Definition does not match the assembly reference.

Dear DevArt team: is there any way to solve this problem?

Kind regards,

Thomas Hoekstra

Thomas Hoekstra
Posts: 9
Joined: Wed 02 Apr 2008 13:35

Found a solution...

Post by Thomas Hoekstra » Thu 03 Jul 2008 14:13

After reading this ( http://devart.com/forums/viewtopic.php?t=12306 )
I removed the policy* for CoreLab from the GAC.

Now everything works fine...

Hope that helps others doing a step-by-step migration...

Cheers from Germany,

Thomas Hoekstra

anton.connect
Posts: 43
Joined: Thu 19 Jun 2008 14:30

Post by anton.connect » Fri 04 Jul 2008 07:29

The exception, "The Manifest Definition does not match the assembly reference" is thrown when the .NET assembly versions that the project was compiled with do not match the assemblies in the search path. You need to either replace the assemblies to the ones that the project was compiled with, or remove all CoreLab references, then re-add them.

Sometimes this exception is thrown even after re-adding the references. This can occur when you have more than one version of assemblies on your machine, and there is a project reference (located in project properties) pointing to a different folder then what was just added to the project. In order to determine if the assemblies in your project were compiled together, look at the version number.

Steps to Resolve:

1. Check that the CoreLab DLLs being referenced by your application are all the same version number.

2. Make sure the application was not compiled with a different version (of CoreLab dll's) than it is being run with.

3. It is possible that the application was compiled by referencing CoreLab assemblies with non matching version numbers. This would happen only if 2 different version of the DLL's existed on your development machine. To check this, open your application in ildasm (in visual studio command prompt type "ildasm"), and open the manifest. You will see all your references listed here with their version numbers. If any of the CoreLab versions do not match, you will need to recompile your project.

4. If the above cases are not true, then its possible that your application is loading dll's from somewhere else than what you expect.

Post Reply