<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      .NET 10 中的新增功能系列文章4——.NET SDK中的新增功能

      引言

      隨著 .NET 10 的發布,.NET SDK 迎來了一系列令人振奮的新功能和增強特性。這些改進不僅提升了開發者的工作效率,還優化了應用程序的性能和部署體驗。本文將詳細介紹 .NET 10 SDK 中的新增功能,包括工具改進、基于文件的應用增強、包引用修剪等,幫助開發者充分利用這些新特性來構建更高效的應用程序。

      正文

      .NET 工具改進

      特定于平臺的 .NET 工具

      .NET 10 引入了對多平臺 .NET 工具的增強支持,開發者現在可以在單個包中發布支持多個 RuntimeIdentifier (RID) 的工具。這意味著工具作者可以捆綁所有受支持平臺的二進制文件,而 .NET CLI 會在安裝或運行時自動選擇正確的二進制文件。這一改進顯著簡化了跨平臺工具的創作和分發流程。

      這些改進的工具支持多種包裝變體:

      • 依賴于框架,平臺無關(經典模式,任何安裝了 .NET 10 的地方都可以運行)
      • 框架依賴,平臺特定(更小,針對每個平臺進行優化)
      • 自包含,平臺特定(包含運行時,無需安裝 .NET)
      • 裁剪版,平臺特定(更小,裁剪未使用的代碼)
      • 平臺特定的 AOT 編譯(最大性能和最小部署)

      這些新工具的工作方式與常規的已發布應用程序非常相似,因此任何可用于應用程序的發布選項(如自包含、剪裁或 AOT 編譯)也同樣適用于這些工具。

      單次工具執行

      .NET 10 引入了 dotnet tool exec 命令,允許開發者執行 .NET 工具而無需全局或本地安裝該工具。這對于 CI/CD 或臨時使用場景尤其有用。

      dotnet tool exec --source ./artifacts/package/ toolsay "Hello, World!"
      

      執行此命令會下載并運行指定的工具包。如果工具本地不存在,系統會提示用戶確認下載。除非指定顯式版本(如 toolsay@0.1.0),否則將使用工具包的最新版本。

      新的 dnx 工具執行腳本

      dnx 腳本提供了一種簡化的方式來執行工具,它將所有參數轉發到 dotnet CLI 進行處理:

      dnx toolsay "Hello, World!"
      

      dnx 命令的實際實現是在 CLI 本身的 dotnet 中,這允許其行為隨時間推移而演變。

      通過 --cli-schema 實現的 CLI 自省

      所有 CLI 命令上都新增了 --cli-schema 選項。使用時,它會輸出調用的命令或子命令的 CLI 命令樹的 JSON 表示形式,這對于工具作者、shell 集成和高級腳本非常有用。

      dotnet clean --cli-schema
      

      輸出示例:

      {
        "name": "clean",
        "version": "10.0.100-dev",
        "description": ".NET Clean Command",
        "arguments": {
          "PROJECT | SOLUTION": {
            "description": "The project or solution file to operate on...",
            "arity": { "minimum": 0, "maximum": null }
          }
        },
        "options": {
          "--artifacts-path": {
            "description": "The artifacts path...",
            "helpName": "ARTIFACTS_DIR"
          }
        },
        "subcommands": {}
      }
      
      

      基于文件的應用程序功能增強

      具備發布支持和本地 AOT 的增強

      基于文件的應用現在支持通過 dotnet publish app.cs 命令發布到本機可執行文件,默認情況下,所有基于文件的應用都以本機 AOT 為目標。如果需要使用與本機 AOT 不兼容的包或功能,可以使用 #:property PublishAot=false 指令禁用此功能。

      基于文件的應用還包括以下增強功能:

      • 項目引用:支持通過 #:project 指令引用項目
      • 運行時路徑訪問:應用程序文件和目錄的路徑可在運行時通過 System.AppContext.GetData 訪問
      • 增強了 shebang 支持:通過改進的 shebang 處理(包括支持無擴展名文件),直接執行 shell 腳本

      項目引用示例:

      #:project ../ClassLib/ClassLib.csproj
      
      var greeter = new ClassLib.Greeter();
      var greeting = greeter.Greet(args.Length > 0 ? args[0] : "World");
      Console.WriteLine(greeting);
      

      增強的 shebang 支持示例:

      #!/usr/bin/env dotnet
      
      Console.WriteLine("Hello shebang!");
      

      修剪由框架提供的包引用

      從 .NET 10 開始,NuGet 審核功能現在可以修剪項目不使用的框架提供的包引用。默認情況下,所有 net 目標框架(如 net8.0net10.0)以及 .NET Standard 2.0 及更高版本的目標框架都啟用此功能。

      此更改有助于:

      • 減少生成過程中還原和分析的包數量
      • 縮短生成時間
      • 減少磁盤空間使用量
      • 減少來自 NuGet 審計以及其他依賴項掃描機制的誤報情況

      雖然此功能默認為列出的 TPM 啟用,但可以通過在項目文件中將 RestoreEnablePackagePruning 屬性設置為 false 來禁用此功能。

      更一致的命令順序

      .NET 10 引入了常見命令的新別名,使它們更易于記住和鍵入:

      新名詞優先形式 別名
      dotnet package add dotnet add package
      dotnet package list dotnet list package
      dotnet package remove dotnet remove package
      dotnet reference add dotnet add reference
      dotnet reference list dotnet list reference
      dotnet reference remove dotnet remove reference

      新的名詞優先表單符合一般 CLI 標準,使 dotnet CLI 與其他工具更加一致。雖然動詞優先表單繼續工作,但建議使用名詞優先表單以提高腳本和文檔中的可讀性和一致性。

      CLI 命令默認為交互式終端中的交互模式

      在交互式終端中,現在默認啟用 --interactive 標志用于 CLI 命令。此更改允許命令動態檢索憑據或執行其他交互行為,而無需顯式設置標志。對于非交互方案,可以通過指定 --interactive false 來禁用交互性。

      原生 shell Tab 補全腳本

      dotnet CLI 現在支持使用 dotnet completions generate [SHELL] 命令為常用 shell 生成原生 Tab 補全腳本。支持的 shell 包括:

      • bash
      • fish
      • nushell
      • powershell
      • zsh

      例如,在 PowerShell 中,可以通過將以下內容添加到 $PROFILE 中來啟用補全功能:

      控制臺應用可以原生創建容器映像

      控制臺應用現在可以通過 dotnet publish /t:PublishContainer 創建容器映像,而無需在項目文件中包含 <EnableSdkContainerSupport> 屬性。這使控制臺應用與 ASP.NET Core 和 Worker SDK 應用的行為保持一致。

      使用新的 <ContainerImageFormat> 屬性可以顯式地將容器映像的格式設置為 Docker 或 OCI。此屬性替代默認行為,具體取決于基本映像格式以及容器是否為多體系結構。

      支持 dotnet test 中的 Microsoft 測試平臺

      從 .NET 10 開始,dotnet test 原生支持 Microsoft.Testing.Platform。要啟用此功能,可以將以下配置添加到 dotnet.config 文件:

      [dotnet.test.runner]
      name = "Microsoft.Testing.Platform"
      

      系列文章

      .NET 10 中的新增功能系列文章1——運行時中的新增功能

      .NET 10 中的新增功能系列文章2——ASP.NET Core 中的新增功能

      .NET 10 中的新增功能系列文章3——.NET MAUI 中的新增功能

      .NET 10 新增功能系列文章(5)——C# 14 中的新增功能

      posted @ 2025-08-05 09:30  葡萄城技術團隊  閱讀(877)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99久久er热在这里只有精品99 | 中文字幕人妻日韩精品| 久久天天躁狠狠躁夜夜不卡| 国产日韩久久免费影院| 伊人久久大香线蕉网av| 40岁大乳的熟妇在线观看| 在线无码午夜福利高潮视频| 免费高潮了好湿h视频| 日韩成人高精品一区二区| 欧美情侣性视频| av日韩在线一区二区三区| 亚洲一区二区精品偷拍| 亚洲色欲色欱WWW在线| 久久国内精品自在自线91| 国产精品无码无在线观看 | 精品人妻伦一二三区久久aaa片| 亚洲产在线精品亚洲第一站一 | 东光县| 精品国产精品午夜福利| 日本欧美大码a在线观看| 无码精品国产VA在线观看DVD| 久久97超碰色中文字幕| 伊人久久大香线蕉AV网| 亚洲大尺度一区二区三区| 秋霞电影院午夜无码免费视频| 真人无码作爱免费视频| 欧美激情一区二区久久久| 国产福利微视频一区二区| 国产视频一区二区三区四区视频| 性色高清xxxxx厕所偷窥| 四虎在线中文字幕一区| 人妻聚色窝窝人体WWW一区| 日本中文字幕亚洲乱码| 亚洲综合网国产精品一区| 极品无码国模国产在线观看| 国产精品伊人久久综合网| 亚洲国产午夜福利精品| 亚洲熟妇熟女久久精品综合| 国产成人无码专区| 亚洲av永久无码精品天堂久久| 国产精品无码av不卡|