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
|
Is there a possiblity that you publish Lightspeed compiled against .net framework 4? I mean the nighlty builds and the stable version. We've recently purchased Lightspeed, but without source code, so I cannot recompile it myself. It looks like it is necessary to solve the problem, described below: I have to create my ConnectionStrategy class in a class library (not exe). In this class I override "protected IDbConnection Connection" property. Everything compiles correctly, but when I try to load this assembly and execute "GetTypes()" on this assembly, I get: "Method 'get_Connection' in type MyConnectionStrategy' from assembly 'xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=yyy' does not have an implementation." After spending hours reading forums, I found that IDbConnection interface which I return is not the same IDbConnection interface, as in Lightspeed dll (my interface comes from System.Data, version 4.0.0.0, but Lightspeed interface comes from System.Data, version 2.0.0.0) - see i.e. http://stackoverflow.com/questions/948785/typeloadexception-says-no-implementation-but-it-is-implemented. As far as I found, there no other way to get rid of this error. |
|
|
It's working for me -- I've created a class library that targets .NET 4.0, implemented a connection strategy in that library, then used that custom connection strategy in a .NET 4.0 console application. Can you provide a minimal but buildable solution that demonstrates the issue? Thanks! |
|
|
I'll try to prepare an minimal example which focuses on this subject. But please let me know if you plan to start publishing Lightspeed in .net4 in the nearest future? Thank you in advance. |
|
|
We don't have any immediate plans to create a separate build for .NET 4.0, because most customers using 4.0 have found no compatibility issues with using the existing 3.5-based build. However, we continue to monitor this and review our plans as .NET 4.0 adoption increases. |
|
|
I attach an example. Please do the following:
GenMan32 is a tool from Microsoft for creating manifests for SxS activation (http://blogs.msdn.com/b/junfeng/archive/2007/04/14/genman32-a-tool-to-generate-sxs-manifest-for-managed-assembly-for-registration-free-com-net-interop.aspx). It is necessary to make COM links between .net and Win32 code - unfortunately we have heaps of Win32 code and we cannot rewrite it all to .net. I couldn't reproduce this error in other situation (without GenMan32), so decided to prepare such example. I suppose that using Lightspeed libraries compiled against .net 4, the error will not occur.
Another reason to have .net4 compiled assemblies is that in .net4 projects using SQLite it's necessary to add useLegacyV2RuntimeActivationPolicy="true" in exe's .config file. |
|
|
The GenMan32 tool dates from 2007 and does not appear to have been updated to cope with SxS versions of the .NET Framework. You'll need to apply a patch to get it to ignore SxS issues. In the Win32ManifestGenerator.WriteTypes method (Win32ManifestGenerator.cs line 246), replace the following line: foreach (Type type in m.FindTypes((t, x) => t.IsPublic, null)) with the following lines: IEnumerable<Type> types; Since your LightSpeed classes will never require COM registration-free manifests, the fact that they are omitted from the list of types will not be an issue. Regarding the SQLite mixed mode issue: yes, this is one of the compatibility issues that we are continuing to monitor. |
|
|
It works perfect! I have never seen software support on such high level, elsewhere! |
|