前言

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

正文

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

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

案例演示

演示前提

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

实操演示

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

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

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

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

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

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

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

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

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

两种模式的优缺点
  • 框架依赖模式

    优点:发布文件小;

    缺点:当同一台机器需要运行多个程序时,如果依赖的框架不同,就得重复安装;

  • 独立模式

    优点:部署方便,同一台机器上不同依赖的程序互相不影响,不需要安装对应版本的运行时;

    缺点:发布的文件很大,包含了依赖框架的相关库文件;

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

总结

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

关注“Code综艺圈”,和我一起学习吧;我回来啦~~~

最新文章

  1. CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP在第三方上边使用发送邮件
  2. 1.1. 如何使用XproerUI库
  3. 随笔—邀请赛前训— Codeforces Round #330 (Div. 2) B题
  4. Linux驱动框架之framebuffer驱动框架
  5. Caffe学习系列(8):solver优化方法
  6. jQuery实现跨域访问
  7. 字符串做异或使用union
  8. IOS 退出App
  9. 用python实现文件读取和内容替换
  10. cms系统架构设计
  11. Gaussian Mixture Models and the EM algorithm汇总
  12. kubernetes 安装metrics-server
  13. js/jquery遇到的坑总结
  14. 【微信小程序】模仿58同城页面制作以及动态数据加载
  15. Optimizing Hive queries for ORC formatted tables
  16. CSS-With-BEM
  17. 引用dataframe的值为什么会不同
  18. 【做题记录】USACO silver * 50(第一篇)
  19. 深入理解 JavaScript(四)
  20. C#当中利用Attribute实现简易AOP

热门文章

  1. python 小兵(10)内置函数
  2. java 变量的定义 类型转换 基本的数据类型
  3. 关于mysql,需要掌握的基础(二):JDBC和DAO层
  4. NSArray文件读写
  5. 它来了,那个最帅的男人来了 Linux常用命令精华讲解 中部
  6. API 接口的安全设计验证:ticket,签名,时间戳
  7. webfunny前端系统:如何解决警报设置触发常见问题
  8. 帆软报表(finereport) 组合地图 保持系列名和值居中
  9. Solution -「ARC 082D」Sandglass
  10. .NET 云原生架构师训练营(权限系统 代码实现 Store.EntityFramework)--学习笔记