-
-
Notifications
You must be signed in to change notification settings - Fork 87
Open
Description
On .NET Framework, the default target architecture (unless specified explicitly) is "any", IIRC - and will default to x86; the package doesn't have x86 binaries (only x64), so on 32-bit it fails with Unable to load DLL 'duckdb'
Maybe add a 64-bit check, and/or explicitly specify the target architecture?
original report:
I see that there's a netstandard2.0 package in the nuget, but: it doesn't seem to work; it doesn't work in the tests here, and doesn't work in standalone packages either.
If it isn't expected to work on netfx, it might be worth simply dropping the netstandard2.0 target - but this might just be a packaging snafu
test setup example:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net472</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>12</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DuckDB.NET.Data.Full" Version="0.9.0.3"/>
</ItemGroup>
</Project>with:
using DuckDB.NET.Data;
using var conn = new DuckDBConnection("Data Source=:memory:");
conn.Open();gives:
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'duckdb': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at DuckDB.NET.NativeMethods.Startup.DuckDBOpen(String path, DuckDBDatabase& database, DuckDBConfig config, IntPtr& error)
at DuckDB.NET.Data.Internal.ConnectionManager.GetConnectionReference(DuckDBConnectionString connectionString)
at DuckDB.NET.Data.DuckDBConnection.Open()
at Program.<Main>$(String[] args) in C:\Code\ConsoleApp7\ConsoleApp7\Program.cs:line 4Metadata
Metadata
Assignees
Labels
No labels