Update to SQLitePCLRaw 3.x#36551
Conversation
…w bundles for e_sqlcipher, e_sqlite3mc, winsqlite3, and plain sqlite3, are no longer supported. so for now, the corresponding test suites have been removed from the sln file. the winsqlite3 and plain sqlite3 test suites can be brought back by using the SQLitePCLRaw provider directly, but those packages don't seem to be available to this build system yet. the test suites for crypto-enabled SQLite would require some other approach, as I no longer publish SQLite builds with crypto at no cost.
|
I discussed this with the team and we think that at this point it's too risky to do this for 10, instead we could do it early for 11 (next week) so we have time to gather feedback and prepare upgrade documentation. |
|
Acknowledged. Thanks for the update. |
|
@ericsink On Linux it is failing with |
|
I will investigate. Thanks for highlighting the error. |
|
I see the problem with my package, but I'm not quite seeing how it would happen, and I want to make sure I'm not missing something. The test suite must be running on (or building for) a number of different Linux configurations, and |
|
As far as I'm aware, we're building only for |
|
Hmmm. Then the error message is a bit of a mystery then. I'll dig more. Thanks. |
|
I found the problem. My mistake. Fix pending. |
|
I'm taking the opportunity to fix some other problems with the targets file. I should be updating this PR next week. |
…3 version to 3.50.4.2 to get the fixes for the targets file in the nuget package
|
Now it's failing with
|
|
Thanks. I'll take a look. |
…ith RuntimeIdentifier win-x64 to avoid Any CPU problems.
|
I've pushed up a build fix, but I'd like to highlight the most recent commit as something that might need further review and discussion. In a nutshell, SQLitePCLRaw 3.0 does not support "Any CPU" builds, and there is a new error build-time error message intended to make that clear. The change I just committed works around the problem with Microsoft.Data.Sqlite.Tests by setting a RuntimeIdentifer in that csproj when the target framework is .NET Framework. |
@ericsink Could you clarify: Any CPU builds are not supported by the moment and will be fixed later or they will not be supported at all? If latter - how to have a .NFW472 application that can run both on x86 and x64 Windows? |
|
When I said that the current packages do not support "Any CPU", what I specifically mean is that they currently do not have the ability to build one non-CPU-specific managed assembly, and then bundle one unmanaged DLL for each CPU architecture, and then dynamically, at runtime, load the appropriate unmanaged DLL depending on the current CPU architecture. However, building one separate configuration for each CPU should work fine, including x64, x86, and arm64. I am investigating the possibility of adding an "Any CPU" feature, but I do not know if or when it would be available. |
|
@ericsink Hmm, in my test .net472 application I still get BadImageFormatException even if I add |
|
(I am following up on the previous comment in another forum where it was also posted) |
See #36535
This PR updates the package reference for SQLitePCLRaw to 3.0.1.
The most significant aspect of this change: Because the e_sqlcipher and e_sqlite3mc bundles have been deprecated, I have removed the corresponding test programs from EFCore.sln. However, their respective csproj files are still present.