如何将 System.Data.SQLite 合并到单个可执行程序中?

2024-01-12

我正在尝试用 C# 创建一个单一可执行应用程序,其中包括 SQLite。 System.Data.SQLite 依赖于一个非托管 DLL (SQLite.Interop.dll),因此我无法将其与 ILMerge 合并。

如何将 System.Data.SQLite 捆绑到我的项目中,以便生成一个没有标记的 DLL 的单一可执行应用程序?


您可以将 dll 作为嵌入资源包含在可执行文件中,然后在运行时提取它(这假设程序有权写入您将 dll 提取到的任何目录)。

就像是

string sqllitefile = "sqllite.dll";
Assembly currentAssembly = Assembly.GetExecutingAssembly();

using (FileStream fs = fileInfoOutputFile.OpenWrite())
using (Stream resourceStream =currentAssembly.GetManifestResourceStream(sqllitefile))
{
   const int size = 4096;
   byte[] bytes = new byte[4096];
   int numBytes;
   while ((numBytes = resourceStream.Read(bytes, 0, size)) > 0) 
   {
         fs.Write(bytes, 0, numBytes);
   }
   fs.Flush();
   fs.Close();
   resourceStream.Close();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 System.Data.SQLite 合并到单个可执行程序中? 的相关文章

随机推荐

  • 如何在上游作业中获取下游作业的控制台输出?

    我正在尝试找到解决方法 因为第一个问题仍未得到解答 无法使用 Jenkins 的凭据运行 Start Job https stackoverflow com questions 48397232 cant run start job wit
  • 使用逻辑或 (||) 测试 if 语句的覆盖率 - 使用 Java 的短路,JaCoCo 希望我覆盖的第四个条件是什么?

    这可能是一个相当简单的问题 但我不知所措 我有一个 if 语句 如下所示 if TheEnum A equals myEnum TheEnum B equals myEnum TheEnum can be A B C G 不仅仅是 4 个选
  • 如何使用 Google Cloud PubSub 和 Run 处理资源密集型长时间运行的任务?

    我有一个 Google Cloud PubSub 主题 有时有数千条消息 有时有零条消息传入 这些消息代表每条可能需要一个小时以上的任务 最好我能够使用 Cloud Run 来实现此目的 因为它可以很好地满足需求 如果发布一千条消息 我希望
  • Angular JS $http.success() vs $q.resolve()?

    我正在尝试找出承诺 与承诺相比 简单地发出 http 请求 然后根据是否成功 success 和失败 fail 采取行动有什么区别 q q defer 与 q resolve http本身使用 q 这两项服务不在同一级别上运行 http g
  • 如何修复 PHP_Beautifier 的空行?

    我目前正在使用PHP 美化器 http pear php net package PHP Beautifier 用于使用以下命令 如选项 格式化代码 t l ArrayNested IndentStyles style bsd NewLin
  • 以编程方式添加 python 解释器

    有没有一种简单的方法可以使用 Pydev 插件界面添加和更改解释器 我正在运行 pydev 1 6 1 我希望能够根据我的环境中的可用解释器列表添加和使用给定的解释器 现在我可以看到 PythonInterpreterManager 有一个
  • 具有自定义哈希函数和比较谓词的 unordered_map 给出编译错误

    我有一个结构作为 std unordered map 的关键 我编写了自定义哈希函数和比较谓词 当我尝试编译代码时 出现以下错误 错误 静态断言失败 键相等谓词必须可以使用两个键类型的参数调用 1831 1831 static assert
  • 支持 .NET Framework 3.5 SP1 客户端配置文件吗?

    针对 NET Framework 3 5 SP1 客户端配置文件时是否需要考虑任何设计注意事项 我知道它是完整框架的子集 但是缺少什么以及我如何知道我的应用程序是否需要客户端配置文件或完整框架 有没有人使用客户配置文件成功开发了一个应用程序
  • 使用 jQuery 将 TD 隐藏到 DIV 中

    我正在尝试隐藏带有所有 TD 的 div 但仅将文本隐藏到 div 中 而不隐藏 TD 标签有人知道如何解决此问题吗 我的代码是 jQuery 代码 div default results hide HTML 代码 div Div Cont
  • 对象检测 API 的 Tensorflow ConcatOp 错误

    我正在遵循tensorflow对象检测api指令并尝试训练现有的对象检测模型 faster rcnn resnet101 coco with 我自己的数据集有 50 个类 所以根据我自己的数据集 我创建了 TFRecord 分别用于训练 评
  • 什么时候需要在 Tkinter 应用程序中调用 mainloop?

    我见过的每个 tkinter 教程都声称tkinter mainloop必须调用该函数来绘制窗口和处理事件 并且它们总是调用此函数 即使在 hello world 程序中也是如此 但是 当我在交互式 shell 中尝试这些时 窗口会正确绘制
  • 在Python中,len(list)有什么作用?

    Does len list 每次调用时计算列表的长度 还是返回内置计数器的值 我有一个上下文 我需要每次通过循环检查列表的长度 例如 listData for value in ioread if len listData gt 25 pr
  • Android 版 Firebase 突然无法在我的测试设备上运行

    我正在使用 Firebase 身份验证和实时数据库构建一个应用程序 昨天之前 在测试时它在我的设备中运行良好 但我现在甚至无法登录 Firebase 但该应用程序可以在我朋友的其他设备上运行 这里的实际问题是什么 在自己的真实设备上测试应用
  • jQuery dataTables:使用 jQuery 在单元格中使用换行符/换行符导出

    我正在尝试使用插件 jquery dataTable 生成可导出的数据表 但出于设计原因 我需要在单元格内进行换行 对于 HTML 视图 我简单地使用 br 但是如果我尝试将这个 f e 导出到 PDF 中 它将导致破坏第一个出现的 br
  • 使用 ReactJS 和 React Router 更改每个路由的页面背景颜色?

    使用 ReactJS 和 React Router 前往新路线时如何更改浏览器背景颜色 请参阅下面我的编辑 了解我一路上想到的想法 我可以让它工作 div 在每个页面视图中 但我需要它在完整背景上工作 以便完整浏览器窗口显示背景 我正在使用
  • 追加后如何检查元素是否存在?

    以下脚本应该附加一个元素 我首先检查该元素是否存在 如果不存在 我将创建它并附加它 问题是 由于某种原因 检查似乎不起作用 它不断地一遍又一遍地创建元素 问题 如何检查append后元素是否存在 我的jsfiddle https jsfid
  • 如何将IntelliJ与本地MySQL连接?

    我一直在努力学习如何在本地主机 MySQL 和 IntelliJ 上连接并编写数据库相关任务 那可能吗 如果是 如何实现 连接到本地实例与连接到远程 MySQL 实例本质上相同 只需将 localhost 或 127 0 0 1 替换为您通
  • firebase 可以 100% 离线运行并稍后同步吗?

    我需要构建一个用于任务工作的应用程序 该应用程序可以 100 离线运行 然后在重新连接到互联网时与服务器同步 该应用程序 目前 的数据库中有超过 6000 人 当传教士在现场时需要对其进行搜索 挑战在于我需要在多台笔记本电脑或平板电脑上本地
  • 将数组转换为对象数组

    如何将数组转换为 JavaScript 对象数组 例如我有一个数组 data fruits frozen fresh rotten apples 884 494 494 oranges 4848 494 4949 kiwi 848 33 3
  • 如何将 System.Data.SQLite 合并到单个可执行程序中?

    我正在尝试用 C 创建一个单一可执行应用程序 其中包括 SQLite System Data SQLite 依赖于一个非托管 DLL SQLite Interop dll 因此我无法将其与 ILMerge 合并 如何将 System Dat