[转]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
作者:xuejianxiyang
出处:http://xuejianxiyang.cnblogs.com
关于作者:Heaven helps those who help themselves.
本文版权归原作者和博客园共有,欢迎转载,但未经原作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。