丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當前位置:首頁 > 話題廣場 > 攻略專題 > 游戲問答

.net項目如何打包發(fā)布?終于找到答案了.NET Core 分發(fā)打包

.NET Core目前可用于更多平臺,因此最好了解如何打包、命名和版本控制。

這樣,無論用戶選擇在哪里運行 .NET,包維護人員均可以幫助確保獲得一致的體驗。 本文對以下用戶非常有用:
  • 嘗試從源生成 .NET Core。
  • 想要更改 .NET Core CLI,但更改可能會影響生成的布局或包。

磁盤布局

安裝時,.NET Core 包含一些組件,這些組件在文件系統(tǒng)中排列如下:

復制

{dotnet_root} (*) ├── dotnet (1) ├── LICENSE.txt (8) ├── T (8) ├── host (*) │ └── fxr (*) │ └── <fxr version> (2) ├── sdk (*) │ ├── <sdk version> (3) │ └── NuGetFallbackFolder (4) (*) ├── packs (*) │ ├── Micro (*) │ │ └── <aspnetcore ref version> (11) │ ├── Micro (*) │ │ └── <netcore ref version> (12) │ ├── Micro;rid> (*) │ │ └── <apphost version> (13) │ ├── Micro (*) │ │ └── <desktop ref version> (14) │ └── NETS (*) │ └── <netstandard version> (15) ├── shared (*) │ ├── Micro (*) │ │ └── <runtime version> (5) │ ├── Micro (*) │ │ └── <aspnetcore version> (6) │ ├── Micro (*) │ │ └── <aspnetcore version> (6) │ └── Micro (*) │ └── <desktop app version> (7) └── templates (*) │ └── <templates version> (17) / ├── etc/dotnet │ └── install_location (16) ├── usr/share/man/man1 │ └── do (9) └── usr/bin └── dotnet (10)
  • (1) dotnet 主機(也稱為“muxer”)有兩個不同角色:激活運行時以啟動應用程序,及激活 SDK 以向其分派命令。 主機是本機可執(zhí)行文件 )。

主機只有一個,不過大部分的其他組件都在帶有版本的目錄中(2、3、5 和 6)。 這意味著系統(tǒng)上可存在多個版本,因為它們是并排安裝的。

  • (2) host/fxr/<fxr version> 包含了主機所使用的框架解析邏輯。 主機采用已安裝的最新 hostfxr。 在執(zhí)行 .NET Core 應用程序時,hostfxr 負責選擇合適的運行時。 例如,為 .NET Core 2.0.0 生成的應用程序會使用 2.0.5 運行時(如果可用)。 同樣,hostfxr 在開發(fā)期間也會選擇適當?shù)?SDK。
  • (3) sdk/<sdk version> SDK(也稱為“工具”)是一組托管工具,可用于編寫和生成 .NET Core 庫和應用程序。 SDK 包括 .NET Core CLI、托管的語言編譯器、MSBuild 及相關(guān)生成任務和目標、NuGet、新項目模板等。
  • (4) sdk/NuGetFallbackFolder 包含 SDK 在還原操作期間使用的 NuGet 包的緩存,例如在運行 dotnet restore 或 dotnet build 時。 此文件夾僅在 .NET Core 3.0 之前使用。 不能從源生成它,因為它包含來自 nuget.org 的預構(gòu)建二進制資產(chǎn)。

“共享” 文件夾包含框架。 共享框架提供一組位于中心位置的庫,從而讓不同的應用程序使用。

  • (5) shared/Micro/<runtime version> 此框架包含.NET Core 運行時和支持托管庫。
  • (6) shared.{App,All}/<aspnetcore version> 包含 ASP.NET Core 庫。 已開發(fā)且支持 Micro 下的庫(作為 .NET Core 項目的一部分)。 Micro 下的庫是一個超集,其中還包含第三方庫。
  • (7) shared;desktop app version> 包含 Windows 桌面庫。 在非 Windows 平臺上不包含此項。
  • (8) LICENSE.txt,T 分別是 .NET Core 許可證和 .NET Core 中使用的第三方庫的許可證。
  • (9,10) do, dotnet do 是 dotnet 手冊頁。 dotnet 是指向 dotnet 主機 (1) 的符號鏈接。 這些文件安裝在已知位置用于系統(tǒng)集成。
  • (11,12) Micro,Micro 分別描述了 x.y 版本 .NET Core 和 ASP.NET Core 的 API。 針對這些目標版本進行編譯時,將使用這些包。
  • (13) Micro;rid> 包含平臺 rid 的本機二進制文件。 將 .NET Core 應用程序編譯為適用于該平臺的本機二進制文件時,將使用此二進制文件作為模板。
  • (14) Micro 介紹 Windows 桌面應用程序 x.y 版本的 API。 在針對該目標進行編譯時,將使用這些文件。 在非 Windows 平臺上不提供此項。
  • (15) NETS 描述了 netstandard x.y API。 在針對該目標進行編譯時,將使用這些文件。
  • (16)“/etc/dotnet/install_location”是一個包含 {dotnet_root} 完整路徑的文件 。 該路徑可能以換行符結(jié)尾。 根路徑為 /usr/share/dotnet 時無需添加此文件。
  • (17) templates 包含 SDK 使用的模板。 例如,dotnet new 在此處查找項目模板。

標記為 (*) 的文件夾被多個包使用。 某些包格式(例如,rpm)需要對此類文件夾進行特殊處理。 包維護人員必須處理這個問題。

推薦的包

.NET Core 版本控制基于運行時組件 [major].[minor] 版本號。 SDK 版本采用相同的 [major].[minor],并有一個獨立的 [patch],它為 SDK 合并了功能和修補語義。 例如:SDK 版本 2.2.302 是支持 2.2 運行時的 SDK 的第 3 個功能版本的第 2 個補丁版本。 有關(guān)版本控制的工作原理的詳細信息,請參閱 .NET Core 版本控制概述。

一些包在自己的名稱中就包含一部分版本號。 這允許你安裝特定版本。 版本名稱中不包含版本的剩余部分。 這允許 OS 包管理器更新這些包(例如,自動安裝安全修補程序)。 支持的包管理器特定于 Linux。

下面列出了推薦的包:

  • dotnet-sdk-[major].[minor] - 安裝特定運行時的最新 SDK版本: <運行時版本>示例: do包含: (3),(4)依賴項: dotnet-runtime-[major].[minor]、aspnetcore-runtime-[major].[minor]、dotnet-targeting-pack-[major].[minor]、aspnetcore-targeting-pack-[major].[minor]、netstandard-targeting-pack-[netstandard_major].[netstandard_minor]、dotnet-apphost-pack-[major].[minor]、dotnet-templates-[major].[minor]
  • aspnetcore-runtime-[major].[minor] - 安裝特定 ASP.NET Core 運行時版本: <aspnetcore 運行時版本>示例: a包含: (6)依賴項: dotnet-runtime-[major].[minor]
  • dotnet-runtime-deps-[major].[minor] (可選) - 安裝運行自包含應用程序的依賴項版本: <運行時版本>示例: do依賴項: 特定于分發(fā)的依賴項
  • dotnet-runtime-[major].[minor] - 安裝特定運行時版本: <運行時版本>示例: do包含: (5)依賴項: dotnet-hostfxr-[major].[minor]、dotnet-runtime-deps-[major].[minor]
  • dotnet-hostfxr-[major].[minor] - 依賴項版本: <運行時版本>示例: do包含: (2)依賴項: dotnet-host
  • dotnet-host - 依賴項版本: <運行時版本>示例: dotnet-host包含: (1),(8),(9),(10),(16)
  • dotnet-apphost-pack-[major].[minor] - 依賴項版本: <運行時版本>包含: (13)
  • dotnet-targeting-pack-[major].[minor] - 允許面向非最新的運行時版本: <運行時版本>包含: (12)
  • aspnetcore-targeting-pack-[major].[minor] - 允許面向非最新的運行時版本: <aspnetcore 運行時版本>包含: (11)
  • netstandard-targeting-pack-[netstandard_major].[netstandard_minor] - 允許面向 netstandard 版本版本: <sdk 版本>包含: (15)
  • dotnet-templates-[major].[minor]版本: <sdk 版本>包含: (15)

dotnet-runtime-deps-[major].[minor] 需要了解發(fā)行版特定依賴項 。 因為發(fā)行版生成系統(tǒng)可能能夠自動派生包,所以包是可選的,如果選擇,會將這些依賴項直接添加到 dotnet-runtime-[major].[minor] 包中。

當包內(nèi)容位于受版本控制的文件夾下時,包名稱 [major].[minor] 與受版本控制的文件夾名稱匹配。 對于所有包(除 netstandard-targeting-pack-[netstandard_major].[netstandard_minor] 外),這也與 .NET Core 版本匹配。

包間的依賴關(guān)系應使用“等于或大于”版本要求 。 例如,do 要求 a >= 2.2.6。 這使用戶可以通過根包(例如 dnf update do)升級其安裝。

大多數(shù)分發(fā)都需要從源中構(gòu)建所有項目。 這對包有一些影響:

  • 不能簡單地從源生成 shared/Micro 下的第三方庫。 因此 aspnetcore-runtime 包中省略了該文件夾。
  • 使用 nuget.org 中的二進制項目填充了 NuGetFallbackFolder。 它應保留為空。

多個 dotnet-sdk 包可能會為 NuGetFallbackFolder 提供同樣的文件。 若要避免包管理器出現(xiàn)問題,這些文件應完全相同(包括校驗和、修改日期等等)。

生成包

dotnet/source-build 存儲庫中說明了如何生成 .NET Core SDK 的源 tarball 及其所有組件。 源版本存儲庫中的輸出內(nèi)容符合本文第一部分中所描述的布局。

1.《.net項目如何打包發(fā)布?終于找到答案了.NET Core 分發(fā)打包》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《.net項目如何打包發(fā)布?終于找到答案了.NET Core 分發(fā)打包》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。

3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2116509.html

上一篇

1-12如何使用融合看這里!出版融合發(fā)展工程入選項目和單位發(fā)布

下一篇

學生黨必看:如何讓 1000 米體測及格

.net項目如何打包發(fā)布?終于找到答案了Flutter實戰(zhàn)經(jīng)驗(十一):打包和發(fā)布到 iOS 平臺

.net項目如何打包發(fā)布?終于找到答案了Flutter實戰(zhàn)經(jīng)驗(十一):打包和發(fā)布到 iOS 平臺

.net項目如何打包發(fā)布相關(guān)介紹,本教程提供了有關(guān)將Flutter App發(fā)布到App Store和TestFlight的說明。 1. 預先準備 在開始發(fā)布你的 app 的進程之前,確保你已經(jīng)看過了 Apple 的 App Store...