c# - 部署 C# SQLite 应用程序

标签 c# sqlite

我有使用 SQLite 的 C# 应用程序。它已经可以工作了,但我一直在玩它,但它不再工作了,我不知道出了什么问题:-/

它编译正常,但我遇到问题“无法加载‘System.Data.SQLite.dll’或其依赖项之一(在非开发计算机上)。这是一项在安装过程中启动的服务,因此安装由于此错误而失败.

所以我添加了System.data.sqlite引用。我必须注意解决方案资源管理器中不再有“x86”和“x64”:-/

包管理器控制台显示它已安装:

PM> Install-Package System.Data.Sqlite
Attempting to resolve dependency 'System.Data.SQLite.Core (≥ 1.0.94.0)'.
Attempting to resolve dependency 'System.Data.SQLite.Linq (≥ 1.0.94.1)'.
Attempting to resolve dependency 'System.Data.SQLite.EF6 (≥ 1.0.94.0)'.
Attempting to resolve dependency 'EntityFramework (≥ 6.1.1.0)'.
'System.Data.SQLite 1.0.94.1' already installed.
QLog already has a reference to 'System.Data.SQLite 1.0.94.1'.

PM> 

我将其添加到 WXS:

(...)
<Component Id="System.Data.SQLite.dll" Guid="{BCA7E1B7-CA34-4B1C-829F-29D4F135912E}">
    <File Id="System.Data.SQLite.dll" Source="..\QLog\bin\x86\Release\System.Data.SQLite.dll" Vital="yes" KeyPath="yes" DiskId="1"/>
</Component>


<Directory Id='dir_x86' Name='x86'>
    <Component Id='x86' Guid='{C2869DAC-B3CC-4E87-AEF2-74F76025CFD9}'>
    <CreateFolder />
        <File Id='x86' Name='SQLite.Interop.dll' Source='..\QLog\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\x86\SQLite.Interop.dll' />
    </Component>
</Directory>
<Directory Id='dir_x64' Name='x64'>
    <Component Id='x64' Guid='{452F3E46-B1E6-4A5A-B2CB-C7DA9B7EAB51}'>
    <CreateFolder />
    <File Id='x64' Name='SQLite.Interop.dll' Source='..\QLog\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\x64\SQLite.Interop.dll' />
    </Component>
</Directory>
(...)

解决方案资源管理器中没有像教程中那样的“x64”和“x86”文件夹,但我可以在“引用”下看到 system.data.sqlite(图像声誉不够)。

我什至尝试将 sqlite-netfx45 安装到部署计算机,但它也没有帮助。

有什么想法吗? :-/

最佳答案

I must note there are no "x86" and "x64" anymore in solution explorer :-/

应用程序部署如下所示:

  • \App.exe(可选,仅限托管应用程序可执行程序集)
  • \App.dll(可选,仅托管应用程序库程序集)
  • \System.Data.SQLite.dll(必需,仅托管核心程序集)
  • \System.Data.SQLite.Linq.dll(可选,仅托管 LINQ 程序集)
  • \System.Data.SQLite.EF6.dll(可选,仅限托管 EF6 程序集)
  • \x86\SQLite.Interop.dll(必需,x86 native 互操作程序集)
  • \x64\SQLite.Interop.dll(必需,x64 native 互操作程序集)

关于c# - 部署 C# SQLite 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26017558/

相关文章:

python - sqlite python sqlite3.OperationalError : database is locked

java - 在主要 Activity 中使用 SQLiteOpenHelper 类访问数据库

sql - 如何使用 "where"子句在 SQLite 查询中转义下划线

c# - 可以确定方法是由派生类调用还是直接作为自身调用? C#

c# - 转到 C# 库 | BadImageFormatException异常

c# - 扩展执行不能正常工作?

javascript - 更新 SQLite 表、JS、PhoneGap、传递变量

c# - WPF隐藏一行,但空白区域不会被清除

c# - 当我们在设计器中指定列时,如何填充gridview?

python - 如何在数据库中的表本身上创建索引?