.net6 WinForm EF7 sqlite 做成一个exe执行文件

1、参与使用的多个外部包

VS2022中建一个WinForm桌面应用(非Framework),nuget中加入如下包:

Costura.Fody

Microsoft.EntityFrameworkCore.Sqlite

Microsoft.EntityFrameworkCore.Tools

XPTable

2、Sqlite数据库文件

放一个car.db数据库文件在项目根目录,这样VS2022编译时会直接找到这个数据库;但是注意,如果不使用VS2022,而且直接执行程序,比如在debug文件夹中,需要把car.db文件放到该目录下。

3、EF7自动建立ORM的model,只需要一条命令:

Scaffold-DbContext "Data Source=car.db" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models -UseDatabaseNames -DataAnnotations -Force

4、在代码中使用sqlite数据库:

**5、编译运行程序:**可以看到其它文件还有很多,甚至还有一个runtimes目录,这个里面还有很多很多sqlite的类库文件。

6、发布成一个exe执行文件

1)用记事本打开.csproj项目配置文件,添加一行参数 <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>

2)使用发布功能,发布单文件执行程序。

3)到发布目录查看,只有一个执行文件和sqlite数据库文件。

相关推荐
季春二九2 小时前
微软 .Net 运行库丨多语言丨离线全集丨静默安装丨多架构支持
microsoft·.net
mudtools11 小时前
.NET集成飞书API最佳实践:基于Mud.Feishu的飞书二次开发实践
c#·.net
玩泥巴的11 小时前
.NET项目中如何快速的集成飞书API
c#·.net·飞书
Crazy Struggle12 小时前
开源 .NET 工作流引擎 + 可视化设计,轻松搞定 OA/CRM/ERP 开发
.net·工作流
Jackson@ML14 小时前
2025最新版.NET 10.0 for Mac安装使用指南
macos·.net
唐青枫14 小时前
一文搞懂 C#.NET DateTimeOffset:时间戳、时区与偏移量全掌握
c#·.net
开开心心_Every1 天前
Excel图片提取工具,批量导出无限制
学习·pdf·华为云·.net·excel·harmonyos·1024程序员节
shepherd枸杞泡茶1 天前
.NET客户端自动更新的设计与实现
linux·.net
Aries·Zhao1 天前
.NET 6 ~ .NET 9 技术演进与区别分析:从稳定旗舰到性能王者
.net
唐青枫2 天前
C#.NET DateTime 最强入门到进阶:格式化、转换、UTC、时区全覆盖
c#·.net