假设我有一个简单的“ 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 我们拭目以待吧。

不通过DotCli发布可以修改一下项目文件,再通过VisualStudio发布!

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.</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文件的更多相关文章

  1. 在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)

    原文:在.NET Core 3.0中发布单个Exe文件(PublishSingleFile) 假设我有一个简单的" Hello World"控制台应用程序,我想发送给朋友来运行.朋 ...

  2. .net core 发布单个exe 文件, 并优化缩小大小

    最新版的.net core 3.0 可以通过命令行发布为exe文件, 操作步骤如下: 在项目目录下打开控制台: 输入命令: dotnet publish -r win-x64 -c Release - ...

  3. 【译】.NET Core 3.0 中的新变化

    .NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...

  4. [转]【译】.NET Core 3.0 中的新变化

    .NET Core 3.0 是 .NET Core 平台的下一主要版本.本文回顾了 .Net Core 发展历史,并展示了它是如何从基本支持 Web 和数据工作负载的版本 1,发展成为能够运行 Web ...

  5. Entity Framework Core 2.0 中使用LIKE 操作符

    Entity Framework Core 2.0 中使用LIKE 操作符 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译 ...

  6. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  7. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  8. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  9. 如何在ASP.NET Core 2.0中使用Razor页面

    如何在ASP.NET Core 2.0中使用Razor页面  DotNetCore2017-11-22 14:49 问题 如何在ASP.NET Core 2.0中使用Razor页面 解 创建一个空的项 ...

随机推荐

  1. uni-app实现滑动切换效果

    在对于uni-app框架了解之后,今天就实现一个滚动切换tab效果,这个很常见的一个效果,最后封装成一个组件,便于以后使用,写这个需要引入uni官方提供的uni.css样式,用到了写好的样式,就不需要 ...

  2. 一行命令安装docker和docker-compose(CentOS7)

    想快速装好docker和docker-compose ?那就随本文用一次复制粘贴来完成安装: 环境信息 操作系统:CentOS Linux release 7.7.1908 (Core, 操作账号:r ...

  3. Python验证码

    from PIL import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rndChar(): return ...

  4. scalikejdbc 学习笔记(3)

    重用connection: package com.citi.scalikejdbc import scalikejdbc._ import scalikejdbc.config._ object C ...

  5. MongoDB 学习笔记之 匹配完整数组

    匹配完整数组: 创建一个集合(包含数组) db.ArrayTest.insert({name: "Sky" , address: [{"street" : &q ...

  6. SpringBootSecurity学习(22)前后端分离版之OAuth2.0自定义授权码

    使用JDBC维护授权码 前面的代码中,测试流程第一步都是获取授权码,然后再携带授权码去申请令牌,授权码示例如下: 产生的授权码默认是 6 位的,产生以后并没有做任何管理,可以说是一个临时性的授权码,o ...

  7. html、css以及javascript的注释方式

    HTML:<!--注释内容  -->; CSS:/* 注释内容*/ JS: //注 释内容; 或者块/*   注释内容 */, sublime中注释方法:选中注释内容+ctrl+/  , ...

  8. 在chrome浏览器安装各种前端,后台插件

    如果想要在chrome安装插件,首先得先有应用chrome的商城,但是默认情况下是没有应用商店: 默认情况下下面这个界面是空白的,没有任何东西,第一步就先安装[谷歌访问助手] 安装步骤 第一步: 下载 ...

  9. QR 码详解(下)

    快速响应矩阵码(下) 书接上回,继续下半场. 纠错码 QR 码采用纠错算法生成一系列纠错码字,添加在数据码字序列之后,使得符号可以在遇到损坏时可以恢复.这就是为什么二维码即使有残缺也可以扫出来.没有残 ...

  10. LeetCode 300. Longest Increasing Subsequence最长上升子序列 (C++/Java)

    题目: Given an unsorted array of integers, find the length of longest increasing subsequence. Example: ...