Unable to load DLL 'sqlite3': The specified module could not be found

后端 未结 4 459
夕颜
夕颜 2021-01-06 14:41

I\'m having a heck of a time getting my tests to run against my SQLite Data Provider.

I\'ve looked at the suggested links here on stackoverflow, but none of them see

相关标签:
4条回答
  • 2021-01-06 15:08

    So the answer for me was quite simple. I wired up a Pre-Build event that checks the architecture of the machine, and copies the appropriate dll into the output bin directory.

    Now anyone on our team can simply run REBUILD, and the proper dll will be available to run against SQLite.

    if '$(PROCESSOR_ARCHITECTURE)'=='AMD64' (xcopy /y "$(ProjectDir)x64\sqlite3.dll" ".\") 
    if '$(PROCESSOR_ARCHITECTURE)'=='x86' (xcopy /y "$(ProjectDir)x86\sqlite3.dll" ".\")
    if '$(PROCESSOR_ARCHITEW6432)'=='AMD64' (xcopy /y "$(ProjectDir)x64\sqlite3.dll" ".\")
    
    0 讨论(0)
  • 2021-01-06 15:08

    When I add the following libraries the error went away

    1. Microsoft Visual C++ Runtime Package (V11.0)
    2. SQLite for Windows Runtime (V3.8.7.1)

    When I add the following libraries the error went away

    0 讨论(0)
  • 2021-01-06 15:19

    Can't put this in comments, so here's what I got: enter image description here

    Also, have a look at Similar problem.

    Last, but not least, did you try to add a reference to the SQLite.Inetrop.dll (in the references)? References -> add -> just browse to where your SQLite is, select view all, and add a reference to the Interop.dll as well)

    0 讨论(0)
  • 2021-01-06 15:27

    I am using VS2017 and solved the issue by adding the following task to copy the assembly.

    <Target Name="Ensure SQLite assemblies copied" AfterTargets="Build" Condition=" '$(Platform)' == 'x64' ">
      <Copy SourceFiles="$(OutDir)x64\SQLite.Interop.dll" DestinationFolder="$(OutDir)" />
    </Target>
    
    0 讨论(0)
提交回复
热议问题