如何将.Net Core应用程序部署在Linux操作系统上运行
.Net Core简介
- 跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。
- 跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。
- 命令行工具: 包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
- 部署灵活: 可以包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配 Docker 容器使用。
- 兼容性: .NET Core 通过 .NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。
- 开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。
- 由 Microsoft 支持: .NET Core 由 Microsoft 依据 .NET Core 支持提供支持。
环境说明
开发环境 :Win10 > Visual Studio 2019 > .Net Core 2.1
运行环境:Linux > CentOS 7
演示Demo:使用.Net Core 开发一个网络爬虫工具,将指定网址的所有图片下载到本地
在CentOS上部署.Net Core运行时环境
1、打开CentOS 通过root登入系统
2、右键打开终端

3、注册Microsoft签名密钥,然后添加Microsoft产品Feed。
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
4、更新可用于安装的产品列表,安装.NET Core所需的组件,然后安装.NET Core 运行时环境。
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1
后续更新提示,确认(y)即可

5、安装完毕后我们可以通过“dotnet --version”命令来测试是否安装成功(结果如图安装成功)

创建.Net Core应用程序
1、选择.Net Core控制台程序

2、写一个demo用于获取指定贴吧中的所有图片
using System;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Threading; namespace WebSpider
{
class Program
{
static void Main(string[] args)
{
var l_strSaveDir = "imgs";
var l_strHostName = "http://tieba.baidu.com/"; using (var l_webClient = new WebClient())
{
l_webClient.BaseAddress = l_strHostName; if (!Directory.Exists(l_strSaveDir))
Directory.CreateDirectory(l_strSaveDir); Console.WriteLine("正在加载网络资源..."); new Thread(() =>
{
var l_strHtml = l_webClient.DownloadString(l_strHostName + "f?kw=java");
var l_strMtchImgPattern = "<img src=\"(\\S+)\"";
var l_mtchImgs = Regex.Matches(l_strHtml, l_strMtchImgPattern, RegexOptions.IgnoreCase); var l_iImgCount = l_mtchImgs.Count;
Console.WriteLine("资源加载完毕,正在下载");
for (int i = ; i < l_iImgCount; i++)
{
var l_strImgUrl = l_mtchImgs[i].Groups[].Value;
l_webClient.DownloadFile(l_strImgUrl, Path.Combine(l_strSaveDir,Guid.NewGuid()+"."+Path.GetExtension(l_strImgUrl)));
Console.WriteLine(string.Format("正在下载({0}/{1})", (i + ).ToString(), l_iImgCount.ToString()));
}
Console.WriteLine(string.Format("图片已全部下载完毕,保存地址{0}",l_strSaveDir)); }).Start();
}
}
}
}
3、编译通过后右键解决方案选择发布

4、选择文件夹点击发布

5、进入发布目录复制编译好的执行文件

6、进入CentOS创建一个目录用于存放编译好的执行文件

6.1 由于我的CentOS是装在本地的虚拟机上面,所以为了方便将编译好的文件复制到CentOS上面。需要进行以下设置


7、将之前编译复制好的执行程序直接粘贴到虚拟机CentOS里创建好的目录下

8、打开终端执行程序

9、执行结果

10、由图可知,我们的.Net Core应用程序在Linux上已经执行成功

如何将.Net Core应用程序部署在Linux操作系统上运行的更多相关文章
- 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...
- VisualStudioCode创建的asp.net core控制台程序部署到linux
1.asp.net core控制台程序 static void Main(string[] args) { ; ) { Console.WriteLine("Hello World!&quo ...
- .net core 部署在Linux系统上运行的环境搭建总结
安装Linux用的是腾讯云的centos7.5,需要安装有环境有mysql5.7 .netcore2.1 nginx1.14 1.首先是mysql的安装 我用的链接工具是putty,首先root登入 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署
运行环境 照例,先亮底 centos:7.2 cpu:1核 2G内存 1M带宽 辅助工具:xshell xftp 搭建.net core运行环境 .net core 的运行环境我单独写了一篇,请看我的 ...
- ASP.NET Core教程:ASP.NET Core程序部署到Linux
一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例 ...
- springboot 定时任务部署至linux服务器上后会执行两次问题
springboot定时任务在本地运行时,正常执行且只执行一次,但是在maven打包成war包,部署至linux服务器上之后,定时任务奇怪的执行了两次. 由于未做负载均衡,所以可以先排除是因为多台服务 ...
- ireport部署到Linux服务器上遇到的问题解决
ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题: 1.打开报表,后台直接报net.sf.jasperreports.engine.util.JRFontN ...
- Ubuntu常用命令大全 以及 PHP+MySQL代码部署在Linux(Ubuntu)上注意事项
PHP+MySQL代码部署在Linux(Ubuntu)上注意事项 https://cloud.tencent.com/developer/article/1024187 Ubuntu常用命令大全 ht ...
随机推荐
- angular,,以及深度拷贝问题;JSON.parse,JSON.stringify灵活运用
问题: $scope.list = [];$scope.listTree = {};$scope.dataTree = []; //获取listTree的数据$scope.getList = func ...
- JVM 程序计数器
程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转 ...
- 微信 PHP - SDK 包
下载 个人公众号谢谢各位老铁支持
- 自定义指令 限制input 的输入位数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 手动创建一个Spring Boot 2.x项目
spring boot 2.1.9版本quick start参考文档地址:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference ...
- 36.React基础介绍——2019年12月24日
2019年12月24日16:47:12 2019年10月25日11:24:29 主要介绍react入门知识. 1.jsx语法介绍 1.1 介绍 jsx语法是一种类似于html标签的语法,它的作用相当于 ...
- lamba
>>> from random import randint>>> allNums = []>>> for eachNum in range(10 ...
- django orm(2)
目录 聚合函数 分组查询 F与Q查询 F查询 Q查询 事务 Django中的事务 orm字段及参数 自定义char字段 聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: ...
- web移动端适配方案
web移动端常用解决方案: 一.通过js+rem,这里有一个解决方案(http://imochen.github.io/hotcss/) 1.1.rem兼容性(https://caniuse.com) ...
- C++ Primer 第四版阅读笔记
阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...