.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数据库文件。

相关推荐
唐青枫9 小时前
C#.NET IL 中间码 深入解析:从 C# 编译结果到 CLR 执行链路
c#·.net
czhc114007566312 小时前
winform 4 12 winform自绘控件
winform
SEO-狼术14 小时前
Infragistics now supports .NET 10
pdf·.net
喵叔哟16 小时前
7.【.NET10 实战--孢子记账--产品智能化】--API 文档迁移 — Swashbuckle → OpenAPI + Scalar
.net
无风听海16 小时前
.NET10之 HttpClient 使用指南
.net
leonkay17 小时前
关于.NET中的队列理解
数据库·性能优化·.net·个人开发·设计规范·队列
CSharp精选营17 小时前
C# 如何减少代码运行时间:7 个实战技巧
性能优化·c#·.net·技术干货·实战技巧
~plus~1 天前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
rockey6272 天前
AScript动态脚本多语言环境支持
sql·c#·.net·script·eval·function·动态脚本
dotNET实验室2 天前
ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑
.net