⑴ ubuntu32 可以運行dotnetcore么
不行的,點net是微軟的,水火不相容,不可能有linux版本的
dotnet restore指令表示編譯項目
dotnet run表示啟動項目
⑶ 如何在Linux伺服器上部署Net Core
如何在Linux伺服器上部署.Net Core?.Net Core是.Net Framework的新一代版本,對於新手來說,將.Net Core部署在Linux伺服器上是一件相當困難的事,為了幫助大家解決困難,今天小編要給大家分享如何在Linux伺服器上部署.Net Core?
1、簡介
一直以來,微軟只對自家平台提供.NET支持,這樣等於讓這個「理論上」可以跨平台的框架在Linux和macOS上的支持只能由第三方項目提供(比如Mono .NET)。直到微軟推出完全開源的.NET Core。這個開源的平台兼容.NET Standard,並且能在Windows、Linux和MacOS上提供完全一致的API。雖然這個小巧的.NET框架只是標准.NET的一個子集,但是已經相當強大了。
一方面,這個小巧的框架可以讓某些功能性應用同時運行在三個平台上(就像某些功能性的Python腳本一樣),另一方面,這也可以讓伺服器運維人員將ASP .NET服務程序部署在Linux伺服器上(特別是對於運行Windows Server較為吃力的伺服器)。
2、部署.NET Core
由於我沒有可用的macOS設備,我將僅用Linux(伺服器)作示範。我作示範的伺服器是CentOS7操作系統。
SSH連接至伺服器,安裝.NET Core的依賴項:
然後從微軟官方獲取.NET Core的主程序:
如果你的伺服器不能正確訪問這個地址,你可能需要手動訪問後面的地址,下載完畢之後,用任意一種方法傳遞進伺服器,並命名為dotnet.tar.gz。
執行指令將組件解壓至指定的位置:
創建鏈接以在任何路徑下直接引用dotnet指令:
至此,.NET Core框架應該就在你的伺服器上搭建好了。
3、嘗試部署一個ASP .NET服務程序
在本地計算機上,修改Visual Studio功能,確保這一項是被安裝的:
啟動Visual Studio,新建一個ASP .NET Core項目:
類型選擇Web應用程序。我們不對示例作太大的修改,僅僅是為了演示ASP .NET運行於.NET Core的狀況。在項目資源管理器內打開Program.cs,依然是熟悉的C#代碼:
為了能正常運行,我們稍稍修改代碼,讓host的對象初始化器看起來是這個樣子:
保存工程,將整個解決方案上傳至伺服器。再次連接伺服器,導航到你存放工程文件的目錄下,執行指令:
該指令指揮.NET Core恢復這個工程引用的包,耐心等待指令執行完畢。
接著,執行指令:
這條指令將使.NET Core編譯並運行這個工程。控制台沒有錯誤信息並產生類似輸出,你的ASP .NET Core應用程序就應該在正確運行了:
試著在任意設備上訪問你伺服器的IP地址(或者域名),如果能正確載入默認頁面,你的.NET Core環境就算部署完畢了:
這個.NET框架只是.NET標準的一個子集,不一定能100%兼容一個復雜的ASP .NET服務程序。但是利用這個框架,你可以把伺服器切換至Linux系統,卻仍然採用ASP .NET作為服務程序的具體實現方法。你也不必為了調試運行於Linux的服務程序而專門去配置一個Linux工作環境——因為.NET Core也可以運行在Windows上,Visual Studio本身就支持使用IIS Express來本地調試一個ASP .NET Core應用程序。
⑷ win10已經安裝了.net core還提示要安裝
您好,Windows環境
檢查當前 SDK 版本
可使用 dotnet --version 命令查看當前安裝的 .NET Core SDK 最新版本。
檢查所有 SDK 版本
可使用終端查看當前安裝的 .NET Core SDK 版本。 打開終端並運行 dotnet --list-sdks 命令。
檢查運行時版本
可使用 dotnet --list-runtimes 命令可使用查看當前安裝的 .NET Core 運行時版本 。
詳細信息
可通過命令 dotnet --info 查看 SDK 版本和運行時版本。 還將獲得其他環境相關信息,如操作系統版本和運行時標識符 (RID)。
Linux環境
檢查當前 SDK 版本
可使用 dotnet --version 命令查看當前安裝的 .NET Core SDK 最新版本。
[dotnba@CentOS8 ~]$ dotnet --version
3.1.101
檢查 SDK 版本
可使用終端查看當前安裝的 .NET Core SDK 版本。 打開終端並運行 dotnet --list-sdks 命令。
[dotnba@CentOS8 ~]$ dotnet --list-sdks
3.1.101 [/usr/share/dotnet/sdk]
檢查運行時版本
可使用 dotnet --list-runtimes 命令查看當前安裝的 .NET Core 運行時版本。
[dotnba@CentOS8 ~]$ dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
如何檢查是否已正確安裝 .NET Core
詳細信息
可通過命令 dotnet --info 查看 SDK 版本和運行時版本。 還將獲得其他環境相關信息,如操作系統版本和運行時標識符 (RID)。
⑸ $home/dotnet命令是啥意思
命令
dotnet-build ——生成 .NET Core 應用程序。
dotnet-clean ——清理生成輸出。
dotnet-migrate ——將有效的預覽版 2項目遷移到.NET Core SDK1.0項目。
dotnet-msbuild ——提供MSBuild命令行的訪問許可權。
dotnet-new ——為給定的模板初始化C#或F#項目。
dotnet-pack ——創建代碼的NuGet包。
dotnet-publish ——發布.NET 依賴於框架或獨立應用程序
dotnet-restore ——還原給定應用程序的依賴項。
dotnet-run ——從源運行應用程序。
dotnet-sln ——用於添加,刪除和列出解決方案文件中項目的選項。
dotnet-test ——使用測試運行車呢更新運行測試。
項目引用
命令
dotnet-add 引用 ——添加項目引用。
dotnet-list 引用 ——列出項目引用
dotnet-remove 引用 ——刪除項目引用
NuGet 包
命令
dotnet-add 包 ——添加NuGet 包。
dotnet-remove 包 ——刪除NuGet包。
NuGet命令
命令
dotnet-nuget delete ——從伺服器刪除或者取消列出包
dotnet-nuget locals ——清除或列出本地NuGet資源,例如http請求緩存,臨時緩存或計算機范圍的全局包文件夾。
dotnet-nuget push ——將包推送到伺服器,並將其發布。
示例
初始化.NET Core控制台應用程序:
dotnet new console
還原給定應用程序的依賴項:
dotnet restore
生成給定目錄中的項目及其依賴項:
dotnet build
運行名為myproject.dll的依賴於框架的應用:
dotnet myproject.dll
⑹ 騰訊雲函數不支持C#
C#語言由於需要編譯後才可以在 CoreCLR 虛擬機中運行。因此在 SCF 中的使用方式,和 Python、Node.js 這類腳本型語言不同,和Java一樣有如下限制:
不支持上傳代碼:使用 C# 語言,僅支持上傳已經開發完成,編譯打包後的 zip 包。SCF 環境不提供 C# 的編譯能力。
不支持在線編輯:不能上傳代碼,所以不支持在線編輯代碼。CoreCLR 運行時的函數,在代碼頁面僅能看到再次通過頁面上傳或 COS 提交代碼的方法。
自定義.NET Custom runtime
Custom Runtime的封裝工作就是要把各種trigger 的事件封裝一個.NET Standard庫,開發雲函數。自 .NET Core 2.0 開始, 提供了名為IHostedService的新介面,有助於輕松實現託管服務,文章《ASP.NET Core 3.x控制IHostedService啟動順序淺探》有深入的實現分析,基於IHostedService實現一個SCFHostService:
這里我們把SCF的Custom Runtime 抽象到ISCFHost 中
在SCFHost 類中完成Custom Runtime的業務處理,接收來自SCF 的事件,轉發給函數進行處理,函數處理的介面 IFunctionInvoker:
默認實現了FunctionInvoker 把請求信息 返回給 SCF:
responseBody 代表了SCF函數的不同Trigger事件信息,我們可以根據不同的Trigger 定義不同的處理函數,例如我們處理HttpTrigger的函數為HttpFunctionInvoker:
上面我們已經完成了最小的MVP封裝,利用.NET Core的依賴注入容器封裝起來,我們定義了一個ISCFBuilder 來組裝函數的配置和服務:
SCF 雲函數開發
我們使用.NET Core的控制台程序來開發雲函數,創建一個控制台程序, 引用Yhd.TencentCloud.SCF 包,把Program.cs 替換成類似代碼:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System.Threading.Tasks;
using Yhd.FindJob;
using Yhd.TencentCloud.SCF.Executors;
public class Index
{
static async Task Main(string[] args)
{
var builder = new HostBuilder()
.ConfigureSCF((context, scfbuilder) =>
{
var configuration = scfbuilder.Configuration;
scfbuilder.Services.AddFindJob(configuration);
scfbuilder.Services.AddEasyCaching(options =>
{
options.UseInMemory();
//use redis cache that named redis
options.UseRedis(configuration)
.WithJson()
;
});
scfbuilder.Services.AddTransient<IFunctionInvoker, JobsHttpFunctionInvoker>();
})
.UseConsoleLifetime();
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
}
通過ConfigureSCF 可以添加函數的依賴服務,例如上面例子中的EasyCaching 以及函數的服務, 關鍵的一句是 scfbuilder.Services.AddTransient<IFunctionInvoker, JobsHttpFunctionInvoker>(); 把函數的處理邏輯使用JobsHttpFunctionInvoker 進行注入。把函數的配置放到appsettings.json。
現在SCF 雲函數有個問題是本地Windows開發問題,本地的函數邏輯的測試可以通過單元測試進行。還有函數打包必須在Linux環境下進行。
雲函數部署
創建 bootstrap 文件
bootstrap 是運行時入口引導程序文件,Custom Runtime 載入函數時固定檢索 bootstrap 同名文件,並執行該程序來啟動 Custom Runtime 運行時。Custom Runtime 支持任意語言及版本開發運行函數,主要基於 bootstrap 引導程序由開發者自定義實現。其中,bootstrap 需具備以下條件:
需具有可執行許可權。
能夠在 SCF 系統環境(CentOS 7.6)中運行。
下面這個是 .NET Core 3.1的雲函數 bootstrap 文件
#!/bin/sh
echo "Start dotnet bootstrap ~~~"
export DOTNET_ROOT=/opt/rt
export PATH=$(pwd):/opt/rt:${PATH}
dotnet ./index/bin/Release/netcoreapp3.1/index.dll
index.dll 就是我們開發的函數文件。
成功創建bootstrap和函數文件後,目錄結構如下所示:
├ bootstrap
└ index
需要在Linux 下執行以下命令,設置文件可執行許可權,並將其添加至 ZIP 包
部署包準備好後,可以通過雲函數控制台來創建和發布函數
在騰訊雲雲函數計算上部署.NET Core 3.1的更多相關文章
阿里雲函數計算上部署.NET Core 3.1
使用阿里雲ECS或者其他常見的VPS服務部署應用的時候,需要手動配置環境,並且監測ECS的行為,做補丁之類的,搞得有點復雜.好在很多雲廠商(阿里雲.Azure等)提供了Serverless服務,藉助於 ...
IIS上部署Net.Core
部署: 1.安裝vc_redist.x64vc_redist.x64 2.安裝DotNetCore.1.0.0.RC2-WindowsHosting 3.安裝DotNetCore.1.0.0-SDK. ...
So Easy - 在Linux伺服器上部署 .NET Core App
.NET Core是微軟提供的免費.跨平台和開源的開發框架,可以構建桌面應用程序.移動端應用程序.網路應用程序.物聯網應用程序和游戲應用程序等.如果你是 Windows 平台下的 dotnet 開發 ...
在IIS上部署 .Net Core 3.0 項目踩坑實錄
在IIS上部署 .Net Core 3.0 項目的主要流程有: 安裝並啟用IIS 安裝AspNetCoreMoleV2 添加.配置網站 設置應用程序池 通過VS發布 一.安裝並啟用IIS: 安裝了 ...
在CentOS 8 上 部署 .Net Core 應用程序
在Centos 8 上 部署 .Net Core 應用程序 -- 記錄篇 1.更新dnf 源 1 dnf update 2.安裝 Asp.Net Core 運行時 1 dnf install ...
在騰訊雲&阿里雲上部署JavaWeb項目(Tomcat+MySQL)
之前做項目都是在本地跑,最近遇到需要在在雲伺服器(阿里雲或者騰訊雲都可以,差不多)上部署Java Web項目的問題,一路上遇到了好多坑,在成功部署上去之後寫一下部署的步驟與過程,一是幫助自己總結記憶, ...
ASP.NET Core學習之四 在CentOS上部署.net core
一.安裝CentOs 以前在大學學過linux,但是對命令行總是有一種深深的排斥感,幾年之後,還是又回來了. 1.下載 現在沒法FQ,就算是FQ網速也是蝸牛一樣慢,我使用阿里雲的鏡像站進行下載速度還是 ...
【netcore入門】在Windows IIS上部署.NET Core 2.1項目
部署之前先檢查下面2個先決條件是否滿足 1.安裝了 IIS 模塊 win7 在 控制面板→程序和功能→打開或關閉Windows功能→勾選Internet 信息服務(Internet Informati ...
CentOS7系統上部署.net core程序
一.准備工作 首先安裝 xshell和 xftp ,前者用於SSH連接Linux伺服器,後者用於FTP上傳下載文件. xshell和xftp個人使用是免費的,下載地址 之後分別輸入用戶名和密碼登錄主 ...
⑺ 有了.net core之後,還會有人用windows server做伺服器嗎
必然會有,很多人都說linux性能比windows好,然後讓很多學生就誤以為學windows沒有前景。
但是別忘了,windows的視窗是很多人脫離不了的。windows單憑這一點就死不掉
另外就是,很多系統的用戶在意的是系統能用,而不要求多高性能,比如一個20人的小公司做個考勤系統,一天到晚能讀寫100次硬碟?這很明顯用戶是不會去追究那些極端優勢條件的。為了維護linux系統需要招聘一個linux工程師維護顯然不合理
⑻ vs2019中怎樣編譯和運行.net core
net core控制台程序 新建項目: 新建成功後vs組織結構: 此時磁碟的組織結構為: 查看主要的三個... 如果我們編譯生成的dll文件是依賴運行主機上的dotnetcore環境的話,那麼我們需要這個文件來執行...
⑼ dotnet core能寫windows service嗎
使用Dotnet core編寫Window Service程序實踐
近年來,需要編寫windows service的情況越來越少,但偶爾也會用到,比如計算機定期執行數據整理的任務等等
1、創建工程
我的習慣是建立三個工程,一個Windows Service主程序,一個Console主程序,一個業務邏輯庫
使用dotnet core命令創建工程
首先,可以使用dotnet new --list命令查看可以創建的工程類型
dotnet new console -n test-app // 創建Console應用,名稱為「test-app」(可選)
dotnet new worker -n xxxxService // 創建Worker Service應用,用於創建Windows服務
dotnet new classlib -n xxxxBll // 創建類庫,用於編寫業務邏輯代碼(可選)
dotnet new sln -n xxxx // 創建解決方案
使用VS、VSCode或Rider等IDE打開解決方案,把項目添加到solution中,建立引用關系等操作。
註:Worker Service程序相對於以往的Windows Service開發,可以直接進行調試,小的工程也可以直接創建Worker,而無需創建test-app調試用工程與BLL類庫。
2、業務邏輯編寫與調試
設置test-app為啟動項,可以方便的進行開發和調試,把業務邏輯代碼都寫到BLL中。
3、開發Windows Service
3.1、把Worker Service改造成Windows Service
1、在項目中添加nuget包:Microsoft.Extensions.Hosting.WindowsServices,選好對應版本。
例如,我的Microsoft.Extensions.Hosting版本是3.1.3,於是選擇Microsoft.Extensions.Hosting.WindowsServices的版本為3.1.3
2、在program.cs內部,將UseWindowsService()添加到CreateHostBuilder
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
3、把BLL與Worker Service程序做好關聯即可發布。
⑽ VS2017在Windows10下如何運用命令行編譯運行
如果是 dotnet framework 項目,使用 msbuild.exe 進行編譯
如果是 dotnet Core 項目,用 dotnet 命令進行編譯