如何將.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]\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用於獲取指定貼吧中的所有圖片

 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上已經執行成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM