正确包含x32或x64 System.Data.SQLite.dll文件

时间:2012-12-20 16:16:52

标签: c# sqlite system.data.sqlite

我在互联网上搜索它,但我不确定该怎么做。 我发现我需要在Program.csproj文件中包含一些代码。

当我打开Program.csproj时,它说

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ShowAllFiles</ProjectView>
  </PropertyGroup>

</Project>

这是我需要包含的代码:

<Reference 
       Include="System, Version=1.0.66.0, Culture=neutral, processorArchitecture=MSIL"  
         Condition=" '$(Platform)' == 'AnyCPU' ">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>library\sqlite\x32\System.Data.SQLite.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference 
         Include="System, Version=1.0.66.0, processorArchitecture=MSIL" 
         Condition=" '$(Platform)' == 'x64' ">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>library\sqlite\x64\System.Data.SQLite.DLL</HintPath>
</Reference>

但是我不太确定这是否正确,因为我的程序从它的根目录而不是从“library \ sqlite \”获取所有dll 有人可以帮我正确地做吗?我只是无法做对

1 个答案:

答案 0 :(得分:3)

首先,我强烈建议您使用http://system.data.sqlite.org

中的v1.0.67 +
http://system.data.sqlite.org/blobs/1.0.83.0/sqlite-netFx40-binary-Win32-2010-1.0.83.0.zip
http://system.data.sqlite.org/blobs/1.0.83.0/sqlite-netFx40-binary-x64-2010-1.0.83.0.zip

因此,只需从两个档案中的一个(包含相同版本)中提取AnyCPU文件:

System.Data.SQLite.dll
System.Data.SQLite.Linq.dll

必须按如下方式复制x64和x86文件(SQLite.Interop.dll)。 在32位操作系统上

    来自sqlite-netFx40-binary-Win32-2010-1.0.xx.0.zip的文件
  • 进入 C:\ Windows \ System32下

在64位操作系统上

  • x64文件进入C:\ Windows \ system32
  • Win32进入C:\ Windows \ SysWOW64

.NET将自动“选择”正确的Interop文件以包含