【问题标题】:Embed .sqlite database in .exe c# application在 .exe c# 应用程序中嵌入 .sqlite 数据库
【发布时间】:2018-05-03 00:51:39
【问题描述】:

我想将 SQLite 数据库嵌入到我的 C# windows 窗体应用程序 (.exe) 中,这样我就可以只给一个非常不精通技术的客户提供 .exe 文件,而不是其他任何东西。数据库是读写的,我需要像这样访问 DataSource 的路径:

 SQLconnect = new SQLiteConnection("DataSource=" + path + ";Version=3;Compress=True;");

我也尝试将数据库保存到桌面上的文件夹,但 SQLiteConnection.CreateFile(path) 似乎失败了,因为如果我将 .exe 文件放在 bin/debug 文件夹之外,.exe 根本不会打开(但它会创建桌面上的必要文件夹)。

但只要它在 bin/debug 中,它就会创建数据库文件并创建表,并且 .exe 可以完美运行。应用程序中的任何时候都没有出现错误。

【问题讨论】:

  • so I can give a very non-tech savvy client just the .exe file and nothing else. 至少您还拥有 SQLIte 程序集,所以这不起作用。

标签: c# sqlite


【解决方案1】:

要包含 SQLite dll,您必须修改引用的属性并将其标记为 Embedded Resource。您可能必须使用ILMerge 请参阅this

您不能嵌入数据库。所以,你有以下两种选择:

  1. 您可以创建In-Memory/Temporary database

    var connection = new SQLiteConnection("Data Source=:memory:");

  2. 随时随地创建数据库。在您的应用程序启动时,您可以创建数据库并为其播种。见this

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    相关资源
    最近更新 更多