This thread looks to be a little on the old side and therefore may no longer be relevant. Please see if there is a newer thread on the subject and ensure you're using the most recent build of any software if your question regards a particular product.
This thread has been locked and is no longer accepting new posts, if you have a question regarding this topic please email us at support@mindscape.co.nz
|
Hello, I cannot drag and drop tables on to the lightspeed design surface. I receive the following exception:
My datasource is SQLite. I installed the version of sqlite that is the only version that integrates with VS2012: sqlite-netFx451-binary-Win32-2013-1.0.94.0 Mindscape Lightspeed version installed: 5.0.2597.0 v2.0.50727 To begin, I followed the walkthough in this screencast: http://www.mindscapehq.com/products/lightspeed/screencasts/getting-started My app.config looks like this:
I did notice that I have two versions of System.Data.Sqlite in my GAC: v4.01.0.96.0_db937bc2d44ff139 v4.01.0.98.0_db937bc2d44ff139 This person posted a similar issue (albeit 7 years ago): http://www.mindscapehq.com/forums/thread/1359 ...but their solution is now outdated as we are on versions well past the stated nightly build fix. Any assistance would be greatly appreciated. |
|
|
I am guessing it will be the same issue as LightSpeed is targetting version 1.0.86. Did you try adding a binding redirect? As per:
|
|
|
Hi Thank you for replying, Jeremy. I went ahead and followed your advice. Here is what I found out: Mscorcfg.msc - the name of a utility that allows you to perform redirects. It no longer ships with Windows or with Microsoft .Net. Confusingly, one must install Microsoft .Net SDK 2.0 to gain access to it. I have a x64 windows operating system, therefore I installed the 64x version of Mscorcfg.msc. See the the next two links for assistance: https://msdn.microsoft.com/en-US/library/2bc0cxhc%28v=vs.100%29.aspx ...after it is installed one can pick up where the instructions for redirecting it to the new version leave off. The next confusing part about the redirection process is what to enter for Assembly Name and Public key token. The Assembly name is simple: System.Data.SQLite. The public key token is slightly more difficult to determine. Here are the steps that I followed: 1) navigate to: C:\Windows\Microsoft.NET\assembly\GAC_64\System.Data.SQLite 2) in my folder there is: v4.01.0.97.0_db937bc2d44ff139 3) that last bit is the public key token: db937bc2d44ff139 to confirm, open a visual studio command prompt: Choose Start, expand All Programs, and then expand Microsoft Visual Studio. Depending on the version of Visual Studio you have installed, choose Visual Studio Tools, Visual Studio Command Prompt, or the command prompt you want to use. The perform the following command: C:\Windows\Microsoft.NET\assembly\GAC32\System.Data.SQLite\v4.01.0.98.0__db937 bc2d44ff139>sn -T System.Data.SQLite.dll Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.17929 Copyright (c) Microsoft Corporation. All rights reserved. Public key token is db937bc2d44ff139 ...and they appear to be identical, therefore one has confirmed the correct public key token. But, doesn't this seem odd to anyone else? If you look closely, all versions of the System.Data.SQLite have the same public key token, be it an old or new version, or even x32 or x64. Intuitively one would expect a public key token to be unique - hence the word "key". For example, here is the 64 bit version of the same .dll: C:\Windows\Microsoft.NET\assembly\GAC64\System.Data.SQLite\v4.01.0.97.0__db937 bc2d44ff139>sn -T System.Data.SQLite.dll Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.17929 Copyright (c) Microsoft Corporation. All rights reserved. Public key token is db937bc2d44ff139 On my machine, I have 2 older versions. Also, because Jeremy mentioned version 1.0.86.0 (was that a typo Jeremy?). Therefore my binding policy looks like this: 1.0.86.0 -> 1.0.98.0 1.0.96.0 -> 1.0.98.0 1.0.97.0 -> 1.0.98.0 I then clicked APPLY and clicked out of the dialog. I restarted Visual Studio. I opened my project. I drag and dropped a table from my SQLite database. Result: same as before...I received the identical exception. Therefore I either performed the redirection incorrectly, or, it wasn't the cause of the exception. Any help? |
|
|
The public key token will be the same as all of the versions are signed by the same key - the key token is just a short form of the public key that signed the assembly, its not a hash of the assembly itself. Try applying the binding redirects to the devenv.exe.config file under C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE - Im guessing they have not been picked up from the changes made by that tool.
|
|
|
I went ahead and re-imaged my computer. Not because of this issue, just a lucky coincidence. Starting with Windows 7 Enterprise and all the appropriate installs for SQLite and Visual Studio. I get exactly the same error. And what is there to redirect? There is only one reference in my GAC. Exception while processing Server Explorer drag: System.EntryPointNotFoundException: Unable to find an entry point named 'sqlite3openinterop' in DLL 'System.Data.SQLite.dll'.
at System.Data.SQLite.UnsafeNativeMethods.sqlite3openinterop(Byte[] utf8Filename, SQLiteOpenFlagsEnum flags, IntPtr& db)
at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)
at System.Data.SQLite.SQLiteConnection.Open()
at Mindscape.LightSpeed.Generator.Extraction.Sqlite3.OpenConnectionCore()
at Mindscape.LightSpeed.Generator.Extraction.Provider I was really hoping to use Lightspeed. This basic setup error is making this a deal breaker. If someone from Mindscape would like to assist, you might just have yourself a customer. But from my point of view after reimaging it should "have just worked". Endlessly trying out fixes is not a good sign for future use of this application. |
|
|
Try applying the binding redirects to the devenv.exe.config file under C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE - Im guessing they have not been picked up from the changes made by that tool. The difference in versions will be coming from LightSpeed targeting an earlier version of SQLite, because SQLite is strongly named a newer version isnt automatically able to be used so the binding redirect does need to be applied to indicate this is possible.
|
|