.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

相关推荐
新兴AI民工7 分钟前
【Linux内核三十九】进程管理模块:CFS负载均衡(四):find_busiest_group决策矩阵与calculate_imbalance
linux
LongRunning22 分钟前
【linux】RK3568(五)云服务器-视频推流
linux
赵民勇36 分钟前
resolvectl命令详解
linux·运维
新时代牛马43 分钟前
Linux 日志管理:journald、rsyslog 与 logrotate
linux·运维·服务器
资深电气设计1 小时前
技术解析:ABB变频器ACH580/ACS180在CDU循环泵系统的应用技术框架
linux·运维·服务器
自律最差的编程狗1 小时前
Ubuntu下Docker部署Ollama 轻量模型
linux·ubuntu·docker
新时代牛马1 小时前
Linux 网络配置:iproute2、DNS 与连通性排障
linux·服务器·网络
新时代牛马1 小时前
Linux systemd 服务管理:从unit 文件到systemctl 启停与排障
linux·服务器·网络
光电笑映2 小时前
Linux 线程同步与互斥:锁的本质、条件变量与信号量的底层原理
linux·运维·服务器·开发语言·c++
kaoa0003 小时前
Linux入门攻坚——89、Hadoop-1-架构及概念
大数据·linux·hadoop·分布式