[转]netcore发布独立单文件(非托管dll也打包进程序里)

命令行模板

dotnet publish -r <运行时> -c Release -f <框架版本,单框架时可不指定> --self-contained -p:PublishSingleFile=<单文件 true/false> -p:PublishTrimmed=<裁剪 true/false> (-p:IncludeNativeLibrariesForSelfExtract=<原生库以自解压形式打包 true/false> 或 -p:IncludeAllContentForSelfExtract=<全部内容文件以自解压形式打包 true/false>)

例子

dotnet publish -r win-x64 -c Release -f net6.0 --self-contained -p:PublishSingleFile=true -p:PublishTrimmed=true -p:IncludeNativeLibrariesForSelfExtract=true
dotnet publish -r linux-x64 -c Release --self-contained -p:PublishSingleFile=true -p:IncludeAllContentForSelfExtract=true

注意

如果不使用IncludeNativeLibrariesForSelfExtract参数,打包出来的单文件会同时输出native dll作为依赖,不算真正的单文件,使用IncludeNativeLibrariesForSelfExtract后把native dll作为自解压打包进去,才是真正的“单”文件。
如果有其他内容文件,要使用IncludeAllContentForSelfExtract,会把全部内容文件也打包进去。
运行程序时,会先把原生库自动解压到C:\Users\用户名\AppData\Local\Temp\.net\程序文件名\下的一个文件夹中。

使用PublishTrimmed时,要检查生成的文件运行是否正常,以防必要的依赖被裁剪掉。

 

转自: https://www.cnblogs.com/zonciu/p/13961051.html

posted @   Ace001  阅读(343)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2018-05-11 Sencha Architect打开闪退问题修复
点击右上角即可分享
微信分享提示