.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

相关推荐
夜听莺儿鸣4 小时前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wuminyu4 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
科力锐品牌君5 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
zhangrelay5 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
流浪0016 小时前
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待
linux·操作系统·线程·pthread库
Lancker6 小时前
chnroute-linux — 中国大陆 IP 段每日自动更新 + 「仅允许国内访问」落地
linux·运维·tcp/ip
高山有多高7 小时前
【Linux笔记】Linux进程与守护进程
linux
大侠归来7 小时前
Ubuntu 搭建 APUE 环境:从源码编译到第一个示例跑通
linux·运维·ubuntu
shdkfbbv9 小时前
【无标题】
linux·运维·服务器
周洲083010 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32