• 如何将.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 支持提供支持。

      点我详细了解.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]
    name=packages-microsoft-com-prod 
    baseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
    enabled=1
    gpgcheck=1
    gpgkey=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用于获取指定贴吧中的所有图片

     1 using System;
     2 using System.IO;
     3 using System.Net;
     4 using System.Text.RegularExpressions;
     5 using System.Threading;
     6 
     7 namespace WebSpider
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             var l_strSaveDir = "imgs";
    14             var l_strHostName = "http://tieba.baidu.com/";
    15 
    16             using (var l_webClient = new WebClient())
    17             {
    18                 l_webClient.BaseAddress = l_strHostName;
    19 
    20                 if (!Directory.Exists(l_strSaveDir))
    21                     Directory.CreateDirectory(l_strSaveDir);
    22 
    23                 Console.WriteLine("正在加载网络资源...");
    24 
    25                 new Thread(() =>
    26                 {
    27                     var l_strHtml = l_webClient.DownloadString(l_strHostName + "f?kw=java");
    28                     var l_strMtchImgPattern = "<img src="(\S+)"";
    29                     var l_mtchImgs = Regex.Matches(l_strHtml, l_strMtchImgPattern, RegexOptions.IgnoreCase);
    30 
    31                     var l_iImgCount = l_mtchImgs.Count;
    32                     Console.WriteLine("资源加载完毕,正在下载");
    33                     for (int i = 0; i < l_iImgCount; i++)
    34                     {
    35                         var l_strImgUrl = l_mtchImgs[i].Groups[1].Value;
    36                         l_webClient.DownloadFile(l_strImgUrl, Path.Combine(l_strSaveDir,Guid.NewGuid()+"."+Path.GetExtension(l_strImgUrl)));
    37                         Console.WriteLine(string.Format("正在下载({0}/{1})", (i + 1).ToString(), l_iImgCount.ToString()));
    38                     }
    39                     Console.WriteLine(string.Format("图片已全部下载完毕,保存地址{0}",l_strSaveDir));
    40 
    41                 }).Start();
    42             }
    43         }
    44     }
    45 }

      3、编译通过后右键解决方案选择发布

      4、选择文件夹点击发布

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

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

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

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

    8、打开终端执行程序

    9、执行结果

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

  • 相关阅读:
    linq.js
    ES6入门
    Visual Studio Code之常备快捷键
    JavaScript——数组
    谈程序员的出路
    优秀博文
    多媒体封装格式详解---MP4
    音视频文件分析工具
    offsetof(s,m)解析
    GCC 提供的原子操作
  • 原文地址:https://www.cnblogs.com/insipid/p/11385426.html
Copyright © 2020-2023  润新知