License compatibility with previous version

License compatibility with previous version

Postby jesuissur » Mon 13 Jun 2011 22:00

Hi,

We've been using dotConnect (5.70) inside a library. This library is used by many of our applications. Each application has the license.licx file embedded.

We've just upgraded to dotConnect 6.30 and got the "License not found" error when the application is deployed on the server.

We've built the application on a machine that the new version was installed on. But we did not rebuild the library on this new dotConnect version.

On the server (where the application and library are deployed), we've simply GAC'ed the new version of dotConnect. Old version is still in the GAC. The library is deployed in the application's bin folder.

We would like to know if there's a problem with our setup and how can we support a library built with an older dotConnect version and an application with a new dotConnect version.

Hope it is clear enough to get some help.
Thanks
Phil
jesuissur
 
Posts: 12
Joined: Wed 13 Oct 2010 14:28

Postby Shalex » Thu 16 Jun 2011 16:09

1. The license resource is version-dependent. If you want to use your application with the new version of Devart.Data.Oracle.dll, you should rebuild your application with the new version of dotConnect for Oracle.

2. As I understood, the chain of calls in your approach is the following:

YourApplication.exe -> YourClassLibrary.dll -> Devart.Data.Oracle.dll

The valid license for *.exe has to be available at any level of this chain: either built in *.exe (licenses.licx), or added to the class library (licenses.licx + licenses.config with the name of *.exe).

Basing on your description, you are embedding the license resource in *.exe, aren't you? So you have rebuilt YourApplication.exe to use it with the new version of Devart.Data.Oracle.dll, but YourClassLibrary.dll still references to and uses the old version of Devart.Data.Oracle.dll. As a result, YourApplication.exe has a license resource for the new Devart.* assembly but tries to access the old Devart.* assembly (via YourClassLibrary.dll). Please rebuild YourClassLibrary.dll so that it has a reference to the new version of Devart.Data.Oracle.dll.
Shalex
Devart Team
 
Posts: 7536
Joined: Thu 14 Aug 2008 12:44

Postby mas » Thu 30 Jun 2011 15:30

A library is compiled with a license from an older version of the connecter.

I'm building an application with a license for a never version of the connector. Even though I have both DLLs available to the application, I get an exception that the library cannot find the old DLL.

What is the best practices for handling different versions of the Devart connector? It seems to me that every new version would require us to rebuild every single library and application, which is a maintenance nightmare.

Is is usually better to have the license built into the library, or into the application?
mas
 
Posts: 25
Joined: Mon 15 Nov 2010 12:09

Postby Shalex » Fri 01 Jul 2011 11:01

mas wrote:Even though I have both DLLs available to the application, I get an exception that the library cannot find the old DLL.

Please make sure that there are no policy.*.Devart.* files in GAC.
Shalex
Devart Team
 
Posts: 7536
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect for Oracle