.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 项目)通常不会受到严重影响;

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

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

混淆代码:ConfuserEx

反编译:NativeAOT

相关推荐
运维栈记1 小时前
API Error: 400 Request body format invalid
linux·ai
小白兔奶糖ovo1 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
s_w.h2 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
顺风尿一寸2 小时前
深入Linux内核:mkdir系统调用的完整实现解析
linux
用户2367829801682 小时前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux
无足鸟ICT3 小时前
【RHCA+】boxes命令(艺术框)
linux
_Voosk3 小时前
FreeBSD 使用代理运行命令
linux·运维·freebsd
G_dou_4 小时前
Linux 搭建 Rust 开发环境:从 rustup 安装到 Cargo 镜像
linux·rust
bsauce4 小时前
【kernel exploit】CVE-2026-23271 perf_event竞态UAF漏洞-ROP提权
linux·linux内核·内核漏洞·内核漏洞利用
Hehuyi_In5 小时前
从优雅到爆烈 —— Linux全力回收内存的一生
linux·内核·内存·memory·回收