Forum:  Designer

Thread:  Custom database driver load issue with v5.2


jovball (User)   Posted on: 19-May-2017 16:54:18.
I'm probably forgetting something basic but I can't see it. I'm attempting to upgrade a project to v5.2.1 and I'm getting this exception.

Quote:

Exception information.
=============================================================
LLBLGen Pro version: v5.2. Build: 5.2.1

Exception details:
=====================
Message: The XML contains a reference to a driver with ID: 'd1f46319-efdc-4c9e-abf0-01390ba2e59a' which isn't loaded, likely due to a missing ADO.NET provider. Line 17441, Position 6
Source: SD.LLBLGen.Pro.ApplicationCore
Stack trace:
at SD.LLBLGen.Pro.ApplicationCore.ProjectClasses.Project.DeserializeFromFile(String filename, String additionalTypeConverterFolder)
at SD.LLBLGen.Pro.ApplicationCore.ProjectClasses.Project.Load(String filename, String additionalTypeConverterFolder)
at SD.LLBLGen.Pro.Gui.Classes.GuiController.PerformOpenProjectAction(String filenameToOpen)

Inner exception: <null>



I've done this enough in the past that I thought I had finally documented what I needed to do for this (and also your troubleshooting suggestions.)

https://llblgen.com/TinyForum/Messages.aspx?ThreadID=22105

I've copied the Driver folder from v5.1 into the correct foler in v5.2. I've looked at the tools menu and the driver doesn't show up there. The Application Output doesn't have anything other than "Successfully..."

Here's the config file contents
Code:

<?xml version="1.0" encoding="utf-8" ?>
<!--
DataDirect DB2 Database ADO.NET driver settings.
Troubleshooting info:
If you get an error, that LLBLGen cannot find this driver ID
Make sure that the .NET framework version build for the driver is not higher than the LLBLGen application.
Drivers are loaded when the LLBL designer application is loaded.
-->
<databaseDriver>
    <shortName>IBM DB2 (DataDirect ADO.NET)</shortName>
    <name>IBM DB2 9.x/10.x/11.x Driver (DataDirect DB2 ADO.NET)</name>
    <databaseName>IBM DB2 9.x/10.x/11.x</databaseName>
    <databaseShortName>IBM DB2</databaseShortName>
    <assemblyFilename>SD.LLBLGen.Pro.DBDrivers.DataDirectDB2DBDriver.dll</assemblyFilename>
    <namespace>SD.LLBLGen.Pro.DBDrivers.DB2</namespace>
    <className>DB2DBDriver</className>
    <driverID>d1f46319-efdc-4c9e-abf0-01390ba2e59a</driverID>
    <dynamicQueryEngineNamespace>SD.LLBLGen.Pro.DQE.DB2</dynamicQueryEngineNamespace>
    <caseSensitiveElementNames>true</caseSensitiveElementNames>
</databaseDriver>



Do I need to rebuild the driver for v5.2? Is there a breaking change that I missed?
daelmo (Support Team)   Posted on: 20-May-2017 08:34:46.
jovball wrote:
Do I need to rebuild the driver for v5.2? Is there a breaking change that I missed?

Most likely that you will have to rebuild it because of the new version of the referenced assemblies (Core, DriverCore, Algorithmia, BLCExtensions)


Otis (LLBLGen Pro Team)   Posted on: 20-May-2017 10:45:54.
yes, you have to recompile the driver source, as it references designer assemblies, which are strongly named, and therefore the references are to v5.1.0.0

You could try to use an assembly redirect in the llblgenpro.exe.config file, so redirect the references to e.g. sd.llblgen.pro.applicationcore 5.1.0.0 to 5.2.0.0 but I'd recommend recompiling the driver, as it's a one time thing and you can then be sure all code indeed works with the v5.2 apis (I don't expect any breaking changes there tho)
jovball (User)   Posted on: 21-May-2017 13:10:01.
I rebuilt the driver with the new references and the driver dll and project project both loaded correctly. The next step will be to verify functionality, I haven't done anything there yet.

Is this something I should expect to do every time there is a version change on the first "dot" position? That is, I already know to do this when LLBLGen changes from v3 to v4 to v5. I didn't remember doing this for the change from 5.0 to 5.1 but version control seems to show that I did. And also, in the past before that for 4.2.


Otis (LLBLGen Pro Team)   Posted on: 22-May-2017 09:40:24.
yes, we change the assembly version in minor version changes (so 5.1, 5.2 etc.). We don't change it when we release a bugfix release (5.1.1, 5.1.2 etc.)