日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

温故知新,DotNet Core SDK和.Net CLI十八般武艺

發(fā)布時(shí)間:2023/12/4 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 温故知新,DotNet Core SDK和.Net CLI十八般武艺 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介

.NET命令行接口 (CLI) 工具是用于開(kāi)發(fā)、生成、運(yùn)行和發(fā)布.NET應(yīng)用程序的跨平臺(tái)工具鏈。

https://docs.microsoft.com/zh-cn/dotnet/core/tools/

SDK

  • .NET SDK (Software Development Kit) v5.0.201.exe

里程碑發(fā)布日期
.NET Core 2.1.x (servicing)LTS (Long Term Support) release. Approximately every 1-2 months or as needed.
.NET Core 3.1.x (servicing)LTS (Long Term Support) release. Approximately every 1-2 months or as needed.
.NET 5.0Release scheduled for November 2020
.NET 6.0LTS (Long Term Support) release, scheduled for November 2021
.NET 7.0Release scheduled for November 2022
.NET 8.0LTS (Long Term Support) release, scheduled for November 2023
  • https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

  • https://github.com/dotnet/core/blob/main/roadmap.md

檢查安裝

dotnet

新建

dotnet new $templateName

其中常見(jiàn)的模板名稱(chēng)有:

模板名字短名稱(chēng)版本要求
控制臺(tái)應(yīng)用程序console>= 1.0
類(lèi)庫(kù)classlib>= 1.0
WPF應(yīng)用程序wpf>= 3.0
WPF類(lèi)庫(kù)wpflib>= 3.0
WPF自定義控件庫(kù)wpfcustomcontrollib>= 3.0
WPF用戶(hù)控件庫(kù)wpfusercontrollib>= 3.0
Windows窗體(WinForms) 應(yīng)用程序winforms>= 3.0
Windows窗體(WinForms)類(lèi)庫(kù)winformslib>= 3.0
Worker Serviceworker>= 3.0
單元測(cè)試項(xiàng)目mstest>= 1.0
NUnit 3測(cè)試項(xiàng)目nunit>= 2.1
NUnit 3測(cè)試項(xiàng)nunit-test>= 2.2
xUnit 測(cè)試項(xiàng)目xunit>= 1.0
Razor組件razorcomponent>= 3.0
Razor頁(yè)page>= 2.0
MVC ViewImportsviewimports>= 2.0
MVC ViewStartviewstart>= 2.0
Blazor 服務(wù)器應(yīng)用blazorserver>= 3.0
Blazor WebAssembly應(yīng)用blazorwasm>= 3.1
ASP.NET Core空web>= 1.0
ASP.NET Core Web應(yīng)用程序 (Model-View-Controller)mvc>= 1.0
ASP.NET Core Web 應(yīng)用程序webapp,?razor>= 2.0
含 Angular 的ASP.NET Coreangular>= 2.0
含 React.js 的ASP.NET Corereact>= 2.0
含 React.js 和 Redux 的ASP.NET Corereactredux>= 2.0
Razor類(lèi)庫(kù)razorclasslib>= 2.1
ASP.NET Core Web APIwebapi>= 1.0
ASP.NET Core gRPC服務(wù)grpc>= 3.0
dotnet gitignore文件gitignore>= 3.0
global.json文件globaljson>= 2.0
NuGet配置nugetconfig>= 1.0
Dotnet本地工具清單文件tool-manifest>= 3.0
Web配置webconfig>= 1.0
解決方案文件sln>= 1.0
協(xié)議緩沖區(qū)文件proto>= 3.0

可選參數(shù)--list可查看本地安裝的所有模板

dotnet new --list

可選參數(shù)-f?指定目標(biāo)框架版本號(hào)

dotnet new $templateName -f $frameworkName

  • net5.0

  • netcoreapp3.1

  • netcoreapp3.0

  • netcoreapp2.1

dotnet new webapi -f netcoreapp2.1

dotnet new webapi -f netcoreapp3.1

dotnet new webapi -f netcoreapp2.2

dotnet new webapi -f net5.0

可選參數(shù)-n?指定創(chuàng)建的輸出名稱(chēng),否認(rèn)默認(rèn)是當(dāng)前文件夾名稱(chēng)

dotnet new webapi -n $projectName

https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new

可選參數(shù)-o?指定輸出目錄,默認(rèn)是當(dāng)前目錄

dotnet new webapi -o $projectName

可選參數(shù)--no-https關(guān)閉默認(rèn)HTTPS要求,方便開(kāi)發(fā)調(diào)試

dotnet new webapi -o $projectName --no-https

還原依賴(lài)

dotnet restore dotnet restore $target.csproj

運(yùn)行

dotnet run

輸出文件會(huì)寫(xiě)入到默認(rèn)位置,即bin/<configuration>/<target>。例如,如果具有netcoreapp2.1應(yīng)用程序并且運(yùn)行dotnet run,則輸出置于bin/Debug/netcoreapp2.1。將根據(jù)需要覆蓋文件。臨時(shí)文件將置于obj目錄。

如果在上下文中,需要直接運(yùn)行某個(gè)文件,可以用

dotnet $fileName

禁止隱式還原

dotnet run --no-restore

禁止生成項(xiàng)目

dotnet run --no-build

生成

dotnet build

dotnet build命令將項(xiàng)目及其依賴(lài)項(xiàng)生成為一組二進(jìn)制文件。二進(jìn)制文件包括擴(kuò)展名為.dll的中間語(yǔ)言 (IL) 文件中的項(xiàng)目代碼。

根據(jù)項(xiàng)目類(lèi)型和設(shè)置,可能會(huì)包含其他文件,例如:

  • 可用于運(yùn)行應(yīng)用程序的可執(zhí)行文件(如果項(xiàng)目類(lèi)型是面向.NET Core 3.0或更高版本的可執(zhí)行文件)。

  • 用于調(diào)試的擴(kuò)展名為.pdb的符號(hào)文件。

  • 列出了應(yīng)用程序或庫(kù)的依賴(lài)項(xiàng)的.deps.json文件。

  • 用于指定應(yīng)用程序的共享運(yùn)行時(shí)及其版本的.runtimeconfig.json文件。

  • 項(xiàng)目通過(guò)項(xiàng)目引用或 NuGet 包引用所依賴(lài)的其他庫(kù)。

對(duì)于目標(biāo)版本低于.NET Core 3.0的可執(zhí)行項(xiàng)目,通常不會(huì)將NuGet中的庫(kù)依賴(lài)項(xiàng)復(fù)制到輸出文件夾。而是在運(yùn)行時(shí)從NuGet全局包文件夾中對(duì)其進(jìn)行解析。

對(duì)于面向.NET Core 3.0及更高版本的可執(zhí)行項(xiàng)目,庫(kù)依賴(lài)項(xiàng)會(huì)被復(fù)制到輸出文件夾。這意味著如果沒(méi)有其他任何特定于發(fā)布的邏輯(例如,Web項(xiàng)目具有的邏輯),則應(yīng)可部署生成輸出。

輸出可執(zhí)行文件還是輸出庫(kù)的配置

要生成庫(kù),請(qǐng)省略<OutputType>屬性或?qū)⑵渲蹈臑長(zhǎng)ibrary

<PropertyGroup><OutputType>Exe</OutputType> </PropertyGroup>

<PropertyGroup><OutputType>Library</OutputType> </PropertyGroup>

指定生成模式

  • Debug

  • Release

dotnet build -c Release

dotnet build -c Debug

指定文件版本

dotnet build -p:Version=$targetVersion

清理

dotnet clean dotnet clean -c Release

打包

dotnet pack dotnet pack -c Release

默認(rèn)情況下,Web 項(xiàng)目不可打包。若要覆蓋默認(rèn)行為,請(qǐng)將以下屬性添加到 .csproj 文件中

<PropertyGroup><IsPackable>true</IsPackable> </PropertyGroup>

Nuget

添加源

dotnet nuget add source $nugetUrl -n $sourceName

列舉源

dotnet nuget list source

刪除源

dotnet nuget remove source $sourceName

推送包到指定源

dotnet nuget push $packageName.nupkg -k $sourceAuthKey -s $sourceUrl

刪除包

dotnet nuget delete $packageName $packageVersion -s $sourceName

發(fā)布

dotnet publish

以dll文件的形式將應(yīng)用發(fā)布為依賴(lài)于框架的應(yīng)用時(shí),將創(chuàng)建跨平臺(tái)二進(jìn)制文件。?dll文件將與項(xiàng)目同名。例如,如果有名為demoForWebApp3.1的應(yīng)用,則會(huì)創(chuàng)建名為demoForWebApp3.1.dll的文件。以這種方式發(fā)布的應(yīng)用可通過(guò)dotnet <filename.dll>命令運(yùn)行,并且可在任意平臺(tái)上運(yùn)行。

只要安裝了目標(biāo).NET 運(yùn)行時(shí),就可以在任何操作系統(tǒng)上運(yùn)行跨平臺(tái)二進(jìn)制文件。如果未安裝目標(biāo).NET運(yùn)行時(shí),如果將應(yīng)用配置為前滾,則它可以使用較新的運(yùn)行時(shí)運(yùn)行。

指定框架的發(fā)布

--runtime?=>?-r

dotnet publish -r linux-x64 --self-contained false dotnet publish -r win-x64 --self-contained false

所有可選的框架清單:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

其中--self-contained false參數(shù)表示不包括對(duì)應(yīng)框架運(yùn)行時(shí)。

dotnet publish -r linux-x64 dotnet publish -r win-x64

將包含完整的目標(biāo)框架運(yùn)行時(shí)+程序

將應(yīng)用發(fā)布為獨(dú)立應(yīng)用,將生成特定于平臺(tái)的可執(zhí)行文件。輸出發(fā)布文件夾包含應(yīng)用的所有組件,包括.NET庫(kù)和目標(biāo)運(yùn)行時(shí)。應(yīng)用獨(dú)立于其他.NET應(yīng)用,且不使用本地安裝的共享運(yùn)行時(shí)。應(yīng)用的用戶(hù)無(wú)需下載和安裝.NET。

直接生成ReadyToRun映像

dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true

使用ReadyToRun映像發(fā)布可以縮短應(yīng)用程序的啟動(dòng)時(shí)間,但代價(jià)是增加應(yīng)用程序的大小。

https://docs.microsoft.com/zh-cn/dotnet/core/deploying/#produce-a-cross-platform-binary

指定項(xiàng)目文件發(fā)布

dotnet publish $packageName.csproj

監(jiān)聽(tīng)并自動(dòng)生成

開(kāi)發(fā)階段在源文件發(fā)生變動(dòng)的情況下就自動(dòng)執(zhí)行dotnet build

dotnet watch run

包管理

添加包

dotnet add package $packageName dotnet add package $packageName -v $packageVersion

查看已安裝包

dotnet list package

移除某安裝包

dotnet remove package $packageName

用VSC打開(kāi)當(dāng)前目錄

先cd到需要打開(kāi)的當(dāng)前目錄,然后輸入命令:

code .

讓VSC支持C#語(yǔ)法檢查

只要安裝C#插件即可。

讓VSC支持自動(dòng)Using

只要安裝Auto-Using for C#這個(gè)插件即可。

總結(jié)

以上是生活随笔為你收集整理的温故知新,DotNet Core SDK和.Net CLI十八般武艺的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。