部署Windows下開發的.Net Core程序至Linux系統

簡介

在Windows上開發,然後發佈開發好的應用到Linux服務器是一個非常常見的流程。在.Net Core 開發中,同樣也有這個流程,本文以圖文形式就如何部署Windows下開發的.Net Core程序至Ubuntu系統進行介紹。

新建.Net Core 項目

首先,我們使用VS新建一個 .Net Core 控制檯的項目,項目結構如下圖所示:
在這裏插入圖片描述
其中,Program.cs 的代碼如下所示:

using System;

namespace DotnetCoreDemo1
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("Hello World!");
		}
	}
}

發佈

有了代碼以後,現在我們進行發佈操作。首先,在“解決方案資源管理器”中右鍵項目,選擇“發佈。。。”,在彈出的以下菜單中進行配置:
在這裏插入圖片描述
① 點擊編輯圖標彈出“配置文件設置”窗體。如上圖所示配置②和③,然後點擊“保存”。

完成以上配置後,點擊④即可進行程序發佈,在程序發佈以後,即可在“目標位置”的文件夾中看到以下內容。
在這裏插入圖片描述

上傳程序

在以上圖片中,只需要上傳選中的文件即可,我們可以使用SCP上傳,如

$ > D:\..\netcoreapp3.1\publish>scp DotnetCoreDemo1* [email protected]:
DotnetCoreDemo1                                               100%   85KB   1.5MB/s   00:00
DotnetCoreDemo1.deps.json                                     100%  494    32.3KB/s   00:00 
DotnetCoreDemo1.dll                                           100% 4096   267.5KB/s   00:00
DotnetCoreDemo1.pdb                                           100%  680    47.6KB/s   00:00
DotnetCoreDemo1.runtimeconfig.json                            100%  154    10.1KB/s   00:00

運行程序

完成以後,進入遠程的服務器,先給程序以可運行權限,然後即可運行,如下圖所示。
在這裏插入圖片描述
PS: 我們也可以直接運行dll文件,dotnet DotnetCoreDemo1.dll

更多的測試

本文所使用的服務器上的.Net Core 的版本是3.1,對應的庫支持C#7.0,所以以下測試代碼使用了一些C#7.0的特性進行測試。

	class Program
	{
		static void Main(string[] args)
		{
			test1();
			test2(5);
			test2("hello");
			test2(null);
			test2(DateTime.Now);
		}

		static void test() => Console.WriteLine($"{DateTime.Now} test()");

		static void test1(){
			var ms = new Dictionary<int, string>
					{
					{19, "nineteen" },
					{23, "twenty-three" },
					{42, "forty-two" }
					};
			Console.WriteLine(ms[19]);
			test();
		}

		static void test2(object obj){

			int sum = 0;
			if (obj is int)
				sum += (int)obj;
			else sum++;

			Console.WriteLine($"sum={sum}\tobj.Value={obj}, obj.TypeName={obj?.GetType().Name}.");
			 
		}
	}

執行結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章