.net8发布Linux 版本程序,部署到Linux服务器上

基础打包代码:

复制代码
# Windows 发布
dotnet publish -c Release -r win-x64 --self-contained true

# Linux 发布
dotnet publish -c Release -r linux-x64 --self-contained true

生成文件较多,生成完整的自包含包(含所有 .NET 运行时 DLL),最稳定、兼容性最高,但体积较大(通常 150--250MB)

优化版

复制代码
dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true

打包为单文件,并自动移除未使用的库,文件体积小(40--80MB),部署最方便,但要稍微注意反射依赖问题

/p:PublishTrimmed=true 会启用 .NET 的"修剪器(Trimmer)",它会分析代码,删除未使用的类与方法。

但:

  • 如果你的程序使用 反射 (Reflection) 、动态加载 (Assembly.Load) 、JSON 序列化反射 等机制,修剪器可能会误删实际需要的类型;

  • 一般业务型应用(例如:OPC UA、MQTT、Modbus 项目)通常不会受到严重影响;

  • 但如果你发现发布后的程序运行时报 TypeLoadException、MissingMethodException 等,可能是修剪导致的。

综上,建议使用基础打包代码,这样最大程序避免错误。

混淆代码:ConfuserEx

反编译:NativeAOT

相关推荐
迷途之人不知返几秒前
【文件系统】-1-磁盘与扇区的定位方法
linux
无足鸟ICT2 分钟前
【RHCA+】yum源配置(软件仓库)
linux·运维
0+11130 分钟前
Linux --IP分片和组装
linux·网络·tcp/ip
Kira Skyler35 分钟前
CVE-2026-99999 deferred-metadata trust inversion 原理分析.md
linux
AR-26710-1 小时前
Linux Day24——TCP/IP分层与封装
linux·运维
该逃避避1 小时前
如何利用代理IP进行更好广告验证?
linux·服务器·网络
水饺编程2 小时前
第2章:Linux 基础,重启命令
linux·c语言·汇编
金色熊族2 小时前
在Qt中使用asan检测内存泄漏(一)
linux·qt·asan
第404号工位2 小时前
“已彻底删除”的照片与文件到底去哪了?我用底层扇区扫描,扒出手机和电脑的幽灵数据
linux·python·架构
硅基手札3 小时前
SPI技术系列 12 · SPI 设备驱动实战
linux·驱动开发·单片机·嵌入式硬件·mcu·性能优化·系统架构