《DotNet Web应用单文件部署系列》一、pubxml文件配置
很多人想用DotNet开发软件赚点外快子补添家用,但心里总放不下心来,担心被人破解了。好消息是去年发布的DotNet 5支持单文件部署,不同于DotNet 3运行时将文件释放到临时文件夹内,DotNet 5运行时将文件释放到内存,将安全系数提高了一个层次。
虽然DotNet 5发布已有9个多月了,却没有一个系统性讲单文件部署的系列文章,所以我写了这个系列。
一)网上几种 .Net 5的单文件部署方式
.Net 5下单文件发布的参数是/p:PublishSingleFile=true,它可以和其它几个参数组合,有如下几种单文件发布的方案。
1.1)依赖于Framework
dotnet publish -r win-x64 --self-contained=false /p:PublishSingleFile=true
1.2)不依赖Framework
dotnet publish -r win-x64 /p:PublishSingleFile=true
1.3)在GUI中配置单文件发布
在VS界面选择发布,配置如下:
点击发布,生成如下:
二、以上单文件部署的缺点:
第一种:过分依赖于Framework是最大问题。
第二、三种,不依赖于Framework,却多出了几个文件aspnetcorev2_inprocess.dll、clrcompression.dll、clrjit.dll、coreclr.dll、mscordaccore.dll。
三种方案都未将wwwroot文件夹打包进EXE文件内。(下篇《打包wwwroot文件夹》)
三、合并多出的dll文件的方案。
3.1)在VS界面选择发布,配置后就会生成FolderProfile.pubxml
3.2)在Properties\ PublishProfiles\FolderProfile.pubxml文件的PropertyGroup节点下添加以下代码
<IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract>
3.3)执行发布,生成如下
命令行如下:
dotnet publish -c Release -p:PublishProfile=FolderProfile -o bin/Release-Win
-c 为 指定配置方案
-p:PublishProfile 指定 发布配置文件
-o 指定输出目录
双击后正常运行:
后记:
dotnet publish -c Release -p:PublishProfile=FolderProfile -o bin/Release-Win
这个命令行是很有用的,可以做成批处理,同时生成linux和windows版本的应用。
最新文章
- Unity引擎下最快的Xml读取器:UnityRapidXml
- 背水一战 Windows 10 (7) - 控件 UI: VisualState, VisualStateManager, 控件的默认 UI
- hdu---(Tell me the area)(几何/三角形面积以及圆面积的一些知识)
- 你确定你是一个合格的.Net开发人员吗?
- sql server 2012 镜像和出现的问题
- Eequal sum sets
- 搜索结果Refinement 行为总结之 multi-selection refinement
- C# 三种打印方式含代码
- 什么是 IP 隧道,Linux 怎么实现隧道通信?
- ORA-12537: Network Session: End of file
- Django的admin视图的使用
- Jetty - 教程
- shell编程 之 test命令
- iOS 线程安全--锁
- silverlight 定时器 System.Windows.Threading.DispatcherTimer
- python中判断实例可迭代地几种方式
- 【python3】爬取新浪的栏目分类
- [BZOJ4340][BJOI2015]隐身术(后缀数组)
- MOSS 2013研究系列---修改默认Logo
- Hessian矩阵与多元函数极值