无法加载文件或程序集'System.Data.SQLite,Version = 1.0.109.0 - 为什么在引用1.0.109.1时搜索版本1.0.109.0

kud*_*ger 3 .net sqlite asp.net-core

我创建了新的ASP.NET Core Web Application和使用ASP.NET Core 2.1过的跨平台框架.

接下来,我添加了System.Data.SQLite.Core使用Nuget manager.它是x86和x64的官方SQLite数据库引擎以及ADO.NET提供程序.

我的主要方法

    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
        SQLiteConnection con = new SQLiteConnection("abc");
    }
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,它正在尝试搜索 1.0.109.0而不是已安装的1.0.109.1版本.

所以最终会像预期的那样抛出异常

System.IO.FileNotFoundException HResult = 0x80070002消息=无法加载文件或程序集'System.Data.SQLite,Version = 1.0.109.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'.该系统找不到指定的文件.来源=

那么,为什么它在寻找错误的版本?

截图供参考

在此输入图像描述

在此输入图像描述

我的解决方案平台是"任何CPU",我在x64上的x64 Windows 7上运行

奇怪

当我在课堂上做F12SQLiteConnection,它会去

在此输入图像描述

我的.csproj文件

 <Project Sdk="Microsoft.NET.Sdk.Web">

 <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
     <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>

   <ItemGroup>
      <PackageReference Include="Microsoft.AspNetCore.App" />
      <PackageReference Include="System.Data.SQLite.Core" Version="1.0.109.1" />
    </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

小智 7

我有同样的问题.最终为我工作的是:

  1. 在Windows资源管理器中,导航到 %UserProfile%\.nuget\packages
  2. 删除的目录system.data.sqlite.coresystem.data.sqlite.core
  3. 在您的.csproj,将您的sqlite包引用更改为

    `<PackageReference Include="System.Data.SQLite.Core" Version="1.0.109.0"/>`
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重建项目以还原包