C#使用SqlCipher以及使用Costura.Fody合并DLL进EXE
创建C# Windows 桌面 窗体应用

框架.NET Framework 4.6.2

使程序支持长路径
4.6.2以后才System.IO模块才开始支持长路径
参看:
https://www.cnblogs.com/zerodai/p/10224946.html#idx_13
https://devblogs.microsoft.com/dotnet/announcing-net-framework-4-6-2/
默认项目属性的BUG
项目属性->生成->下面这个勾(首选32位)一定要去掉 一定要去掉 一定要去掉 这是个VS默认设置的BUG 不去掉这个 简单的获取文件大小就会出现问题

在勾选上首选32位后,测试如下代码:
private void button1_Click(object sender, EventArgs e)
{
System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\windows\regedit.exe");
MessageBox.Show(Convert.ToString(fi.Length));
}

实际大小为 357888:

去除首选32位后就正常了

使用NuGet

SqlCipher的使用
用途:加密SQLite数据库
加载方法:
搜索SqlCipher 发现有3个相关



区别暂不清楚,目前使用作者为官方SQLite-net
URL:https://github.com/praeclarum/sqlite-net
加载后会自动引入一大堆相关的DLL

SQLitePCLRaw.lib.e_sqlcipher.2.0.3
System.Buffers.4.4.0
System.Numerics.Vectors.4.4.0
System.Runtime.CompilerServices.Unsafe.4.5.2
System.Memory.4.5.

本文介绍了如何在C# Windows桌面应用中使用SqlCipher加密SQLite数据库,以及通过Costura.Fody将DLL合并到EXE文件中。在.NET Framework 4.6.2环境下,详细阐述了设置项目属性以支持长路径,安装并配置SqlCipher和Costura.Fody的过程,并解决了因首选32位导致的问题。同时,指出了在使用Costura.Fody时需要注意排除特定DLL以避免运行时错误。
最低0.47元/天 解锁文章
533

被折叠的 条评论
为什么被折叠?



