在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)
假设我有一个简单的“ Hello World”控制台应用程序,我想发送给朋友来运行。朋友没有安装.NET Core,所以我知道我需要为他构建一个独立的应用程序。很简单,我只需在项目目录中运行以下命令:
dotnet publish -r win-x64 -c Release --self-contained
朋友是多少位的操作系统,你就标记要发布成什么样子的, --self-contained这个标签的解释自包含,就是说你的相关依赖项与你的应用程序不挂钩,将会产生依赖,缺少一个dll就会缺胳膊少腿。所以这样你就必须将整个文件夹都托给朋友。
看看文件夹里的情况,它会发生什么?293个文件,这直接将.NET Core的运行时也打包了,这非常Nice!不过我这文件真的很多,我很难受!朋友会说:这什么鬼?exe在哪里?
所以.NET Core给我们提供了一个命令标志, dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 您会注意到,我们不再指定自包含标志。这是因为假设如果您将其打包为单个exe,则将需要它的所有依赖关系。这一定说得通。我们试着去运行该命令。随后打开publish文件,我们发现!这也太干净了吧! 但是文件还是有点大呀,这可只是一个Hello World呀!,我们在思考如何进行优化大小,当然这一点微软也给我们考虑到了!!!
使用命令 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true/p:PublishTrimmed=true 我们拭目以待吧。
不通过Dot Cli发布可以修改一下项目文件,再通过VisualStudio发布!
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <RuntimeIdentifier>win10-x64</RuntimeIdentifier>//发布平台 <PublishSingleFile>true</PublishSingleFile>//是否单个exe </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed>//启用压缩 </PropertyGroup></Project>
祝.NET Core愈来愈好!
在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)相关推荐
- .NET Core 3.0 中的新变化
译者:楚人Leo 译文:http://www.cnblogs.com/leolion/p/10585834.html 原文:https://msdn.microsoft.com/en-us/magaz ...
- .NET Core 2.0 Preview2 发布汇总
前言 关于 ASP.NET Core 2.0 的新功能可以查看 Amazing ASP.NET Core 2.0. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Prev ...
- 在ASP.NET Core 2.0中创建Web API
目录 介绍 先决条件 软件 技能 使用代码 第01步 - 创建项目 第02步 - 安装Nuget包 步骤03 - 添加模型 步骤04 - 添加控制器 步骤05 - 设置依赖注入 步骤06 - 运行We ...
- .NET Core 2.0终于发布了
.NET Core 2.0的最终版本终于发布了.这是.NET 开源跨平台的一个重大里程碑, 也是很多支持者.社区.公司共同努力的结果.开发者们可以采用命令行.自己喜欢的文本编辑器.Visual Stu ...
- .NET Core 3.0中的数据库驱动框架System.Data
虽然没有得到很多关注,但System.Data对于.NET中任何关系型数据库的访问都至关重要.因为其前身是ActiveX Data Objects,所以它也被称为ADO.NET.System.Data ...
- .NET Core 3.0 中的数据库驱动框架 System.Data
虽然没有得到很多关注,但System.Data对于.NET 中任何关系型数据库的访问都至关重要.因为其前身是 ActiveX Data Objects,所以它也被称为 ADO.NET.System.D ...
- ASP.Net Core 2.0中的Razor Page不是WebForm
随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的 ...
- Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)
相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...
- net应用程序中发生了未经处理的异常怎么办_介绍一些在.NET Core 3.0中引入的诊断改进工具...
编者按:即使.NET Core3.1.5已经发布,在进行.NET Core的性能诊断时,我们有时依然不知该从何处下手,那这篇介绍.NET Core3.0中引入的诊断工具,或许能为我们提供参考. 在.N ...
最新文章
- 目标检测中的分类和定位冲突问题
- flash中物体运动基础之三---------摩擦力,重力,风力,推力,旋转
- 用MATLAB作图像识别所需要注意的细节!
- [架构]--高并发问题及解决方案
- 使用直线标定板进行相机畸变校正,并且进行9点标定(halcon)
- 维护win10注册表
- ISOLINUX: A bootloader for Linux using ISO 9660/El Torito CD-ROMs
- 2018年,加油!!!
- 【报告分享】抖音品牌主页运营官方指导手册.pdf(附下载链接)
- java解三角函数方程_Java 中的三角函数
- js选中文字兼容性解决
- Mac系统打开dmg出现 “资源忙” 怎么解决?
- 保镖机器人作文_【保镖的作文】_玛雅作文网
- C++程序设计的技巧-Pimple的使用
- 六个参数帮你全面了解固态硬盘
- 五分钟学会前端打包工具webpack
- configmap资源简介和应用
- 美术2.4 UV原理基础
- 苹果备忘录永久删除怎么恢复?分享2个找回备忘录的高效操作
- PHP 导出Excel 报错:realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed