前言

以往部署程序一直是习惯性先安装运行时环境,然后再将发布打包好的程序运行起来;但当多个程序依赖不同版本框架平台时,如果部署在同一台机器上,那就需要在同一台机器上安装多个版本的运行时,总感觉有点不太方便,所以今天就来说说.NET部署的两种模式

正文

其实在发布程序时有两种模式可以选择,框架依赖模式和独立模式

  • 框架依赖模式:程序在发布打包时,只针对程序本身进行打包,如果打包好的程序要在其他机器上正常运行,首先要在对应的机器上安装对应版本框架的运行时,否则程序是不能运行的;
  • 独立模式:程序在发布打包时,程序和依赖的框架一起打包了,只需要将打包好的文件放到对应的机器上直接运行即可,不需要安装框架运行时

案例演示

演示前提

新建一个MVC项目,默认生成的项目就行,主要是有页面,演示方便(用其他形式同理,如API或控制台等都一样);

实操演示

右键项目->点击发布->弹框选择发布方式,这里建议选择用文件夹的形式,确定无误之后再上传到服务器比较保险。

.net 打包工具 .net发布与打包的区别_不同版本

点击下一步选择对应的发布文件夹,后续发布生成的文件就到此文件夹下啦。

.net 打包工具 .net发布与打包的区别_不同版本_02

指定好路径之后,点击右下角的完成,进入如下界面;

.net 打包工具 .net发布与打包的区别_.net 打包工具_03

通常会直接点击发布按钮将程序发布,其实这个时候默认是以框架依赖的模式进行发布的,可以点击显示所有设置进行配置,如下:

.net 打包工具 .net发布与打包的区别_上传_04

这里先以框架依赖的方式发布一版,放到一个没有环境的机器上试试。这里是通过Xftp工具将发布文件传到Linux中,运行之前,需要将项目的启动文件赋予执行权限,否则不能执行,如下:

.net 打包工具 .net发布与打包的区别_上传_05

看看,果然运行不起来,必须先安装对应版本的运行时才行。

现在再切换为独立模式发布一版,这里需要注意一点,当选择独立模式时,一定要选择目标运行时,根据运行的机器进行选择即可,这里我要放在Linux上,所以选择Linux x64(下拉选项中Windows、Linux、Mac都可以选择,根据机器选择合适的环境发布就行)。

.net 打包工具 .net发布与打包的区别_.net 打包工具_06

发布打包完成之后,同样传到Linux环境中,运行如下:

.net 打包工具 .net发布与打包的区别_.net 打包工具_07

可以看到,独立部署的形式是可以正常运行的。

两种模式的优缺点
  • 框架依赖模式
    优点:发布文件小;
    缺点:当同一台机器需要运行多个程序时,如果依赖的框架不同,就得重复安装;
  • 独立模式
    优点:部署方便,同一台机器上不同依赖的程序互相不影响,不需要安装对应版本的运行时;
    缺点:发布的文件很大,包含了依赖框架的相关库文件;

这里就简单演示了Linux环境的操作,其他环境小伙伴们自己试试吧;代码就不上传了,就是简单建个项目演示,没有做任何更改。

总结

两种模式可以针对自己的需要进行部署,如果是同一台机器需要运行很多程序,又没有做类似于容器这种隔离的情况下,独立模式感觉还不错哦,依赖框架互不影响,可能会避免一些麻烦事。