.NET Core通过dotnet publish命令发布应用

一、前言

.NET Core 3.0中新增加了一个特性:Publishing Single EXEs,可以通过dotnet publish 命令将整个.net core应用发布为一个可执行文件。

二、准备工作

使用VS 2019新创建一个MVC项目:

然后使用dotnet publish命令发布:

dotnet publish

如下图所示:

我们查看发布后的文件

可以看到发布之后有很多文件。接下来我们发布成单个可执行文件。

1、Windows上的发布命令

在Windows系统上面执行如下的发布命令

dotnet publish -r win10-x64 /p:PublishSingleFile=true

如下图所示:

我们在查看发布后的文件

可以看到:这次只生成了一个exe文件,文件大小约86M。双击该exe文件就可以运行程序:

2、Mac上的发布命令

在Mac系统上面执行如下的发布命令:

dotnet publish -r osx-x64 /p:PublishSingleFile=true

如图所示:

发布后的文件如下图所示:

3、在Linux上的发布命令

在Linux系统上面执行如下的发布命令:

dotnet publish -r linux-x64 /p:PublishSingleFile=true

如图所示:

发布后的文件如下图所示:

上传到Linux系统即可运行。

到此这篇关于.NET Core通过dotnet publish命令发布应用的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .net 6项目实现压缩发布

    单文件包现在支持压缩,可以通过将属性设置EnableCompressionInSingleFile为true.在运行时,文件会根据需要解压缩到内存中.压缩可以为某些场景提供巨大的空间节省. 让我们看一下与NuGet 包资源管理器一起使用的带压缩和不带压缩的单个文件发布. 无压缩:172 MB 压缩后:71.6 MB 压缩可以显着增加应用程序的启动时间,尤其是在 Unix 平台上.Unix 平台具有无法与压缩一起使用的无复制快速启动路径.您应该在启用压缩后测试您的应用,看看额外的启动成本是否可以接

  • 解析如何利用一个ASP.NET Core应用来发布静态文件

    虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件的请求.针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点.不过在针对对它们展开介绍之前,我们照理通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件. 目录 一.以Web的形式读取文件 二.浏览目录内容 三.显示默认页面

  • 如何给ASP.NET Core Web发布包做减法详解

    1.引言 紧接上篇:ASP.NET Core Web App应用第三方Bootstrap模板.这一节我们来讲讲如何优化ASP.NET Core Web发布包繁重的问题. 在ASP.NET Core Web App中我们可以通过Bower或NPM来安装一些JS.CSS插件,来方便我们组织前端组件.但是这也给我带来了一个问题,那就是发布时需要把安装的Bower包或NPM包都要打包上传到服务器. 如果现在发布ASP.NET Core Web App,wwwroot下已包含到项目中的文件都会被发布.虽然

  • 在Linux+Jexus中发布和部署Asp.Net Core

    目录 安装 Linux DotNet 环境 新建一个 WebApp 项目,并发布 使用 Jexus 进行反向代理 Jexus 介绍 安装 Jexus 配置 Jexus 注意事项 安装 Linux DotNet 环境 安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core. 新建一个 WebApp 项目,并发布 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序,然后

  • .NET Core3.1发布(翻译)

    .NET Core3.1发布 我们很高兴宣布.NET Core 3.1的发布.实际上,这只是对我们两个多月前发布的.NET Core 3.0的一小部分修复和完善.最重要的是.NET Core 3.1是长期支持(LTS)版本,并且将支持三年.和过去一样,我们希望花一些时间来发布下一个LTS版本.额外的两个月(在.NET Core 3.0之后)使我们能够选择和实施在已经非常稳定的基础上进行的正确改进. 您可以下载适用于Windows,macOS和Linux的.NET Core 3.1: .NET C

  • .netcore 使用surging框架发布到docker

    demo运行在windows的docker中,系统是win10,所以需要先下载Docker for Windows,安装完毕后系统会重启,然后桌面上可以找到Docker for Windows的快捷图标,右下角有个鲸鱼小图标 单击右键,选择菜单中的Kitematic 会提示你下载Kitematic,自行下载后解压即可,将Kitematic快捷到桌面: 打开Kitematic,在搜索栏中下载好RabbitMQ.redis.consul相关镜像,因为这些是surging运行的先决条件. 接着去Git

  • ASP.NET Core实现单体程序的事件发布/订阅详解

    背景 事件发布/订阅是一种非常强大的模式,它可以帮助业务组件间实现完全解耦,不同的业务组件只依赖事件,只关注哪些事件是需要自己处理的,而不用关注谁来处理自己发布事件,事件追溯(Event Sourcing)也是基于事件发布/订阅的.在微服务架构中,事件发布/订阅有非常多的应用场景.今天我给大家分享一个基于ASP.NET Core的单体程序使用事件发布/订阅的例子,针对分布式项目的事件发布/订阅比较复杂,难点是事务处理,后续我会另写一篇博文来演示. 案例说明 当前我们有一个基于ASP.NET Co

  • 在MacOS+Linux+Nginx中发布和部署Asp.Net Core

    目录 新建一个 WebApp 项目 发布到 Linux,Mac OS 使用 Nginx 进行反向代理 Mac OS Linux(Ubuntu) 注意事项 新建一个 WebApp 项目 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序. 以下是我在 Mac 中的截图: 主要是用以下几个命令: mkdir HelloWebApp 这个命令是创建一个名为 HelloWebApp 的文件夹. dotnet new -t W

  • 解决.Net Core项目发布在IIS上访问404的问题

    对策: 1.进入线程池画面,将当前程序的线程池设为"无托管代码" 2.修改配置文件 Web.config,加上配置 原因: 因为.NetCore 5.0 自带集成了Swagger , 在发布项目时,通常会在代码中限制ASPNETCORE_ENVIRONMENT为Production时关闭Swagger. 解决方法:项目发布后默认为 Production 生产环境,可修改 web.config 文件,改成 Development 开发环境就可以访问. 具体方法如下:在web.config

  • .NET Core通过dotnet publish命令发布应用

    一.前言 .NET Core 3.0中新增加了一个特性:Publishing Single EXEs,可以通过dotnet publish 命令将整个.net core应用发布为一个可执行文件. 二.准备工作 使用VS 2019新创建一个MVC项目: 然后使用dotnet publish命令发布: dotnet publish 如下图所示: 我们查看发布后的文件 可以看到发布之后有很多文件.接下来我们发布成单个可执行文件. 1.Windows上的发布命令 在Windows系统上面执行如下的发布命

  • Android 使用maven publish插件发布产物(aar)流程实践

    目录 背景 一.编译后的产物 1.1 APK 构件 1.2 AAB(Android app bundle)构件 1.3 AAR 构件 二.publish插件 2.1 maven-publish插件使用 2.2 maven插件使用 2.3 业务侧使用 三.问题总结 3.1 报错 3.2 module打包aar时依赖aar导致的类引用不到的问题 背景 平时开发中会把一些独立的功能模块抽取出来作为sdk,既方便业务接入,又能让其他业务线快速复用.那么我们就需要将sdk打包上传到maven仓库,让业务侧

  • Asp.net core利用MediatR进程内发布/订阅详解

    1.背景 最近,一个工作了一个月的同事离职了,所做的东西怼了过来.一看代码,惨不忍睹,一个方法六七百行,啥也不说了吧,实在没法儿说.介绍下业务场景吧,一个公共操作A,业务中各个地方都会做A操作,正常人正常思维应该是把A操作提取出来封装,其他地方调用,可这哥们儿偏偏不这么干,代码到处复制.仔细分析了整个业务之后,发现是一个典型的事件/消息驱动型,或者叫发布/订阅型的业务逻辑.鉴于系统是单体的,所以想到利用进程内发布/订阅的解决方案.记得很久之前,做WPF时候,用过Prism的EventAggreg

  • 利用C#编写Linux守护进程实例代码

    前言 Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展到多进程,父子进程文件描述符共享,父子进程通讯.控制等方面,是实现Linux大型服务的基础技术之一. 如果要在Red Hat Enterprise Linux上将.NET Core进程作为后台进程运行,则可以创建自定义systemd单元.今天我将为.NET Core编写两个自定义系统单元的例子

  • 详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 Asp.Net Core 的程序进行发布和部署. 目录 新建一个 WebApp 项目 发布到 Linux,Mac OS 使用 Nginx 进行反向代理 新建一个 WebApp 项目 在 Asp.Net Core 项目中,我们使用 dotnet new -t WebApp 命令和创建一个新的空的 Web 应用程序. 以下是我在 Mac 中的截图: 主要是用以下几个命令: mkdir He

  • ASP.NET Core全面扫盲贴

    1. 前言 .NET发行至今已经过了十四个年头.随着版本的不断迭代更新,.NET在Windows平台上的表现也是越来越好,可以说Windows平台上所有的应用类型.NET几乎都能完成. 只是成也Windows,败也Windows,这十四年来,除了部分"民间"版本,.NET一直没能在官方支持下摆脱Windows平台的局限,"开源"和"跨平台"这两个词语也是所有.NET开发者心中的痛楚.最终,.NET Core出现了,它让开发者们在官方和社区的支持走

  • ASP.NET CORE基础教程

    目录 第一课 基本概念 第二课 控制器的介绍 第三课 视图与表单 第四课 数据验证 第五课 路由规则 第六课 应用发布与部署 源码地址 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 MVC设计模式的一种实现 环境准备 安装最新版Visual Studio 2017 安装最新版.NET Core Sdk 第二课 控制器的介绍 控制器定义方式: 命名以Controller结尾 使用

  • ASP.NET Core快速入门教程

    目录 第一课 基本概念 第二课 控制器的介绍 第三课 视图与表单 第四课 数据验证 第五课 路由规则 第六课 应用发布与部署 源码地址 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 MVC设计模式的一种实现 环境准备 安装最新版Visual Studio 2017 安装最新版.NET Core Sdk 第二课 控制器的介绍 控制器定义方式: 命名以Controller结尾 使用

随机推荐