共用方式為


dotnet nuget 推送

此文章適用於:✔️ .NET 6 SDK 與更新版本

名稱

dotnet nuget push - 將套件推送至伺服器並加以發佈。

概要

dotnet nuget push [<ROOT>] [--allow-insecure-connections] [-d|--disable-buffering] [--force-english-output]
    [--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
    [--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
    [-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
    [-t|--timeout <TIMEOUT>]
    [--configfile <FILE>]

dotnet nuget push -h|--help

說明

命令 dotnet nuget push 會將套件推送至伺服器並加以發佈。 推送命令會使用系統 NuGet 組態檔或組態檔鏈結中找到的伺服器和認證詳細數據。 如需組態檔的詳細資訊,請參閱 設定 NuGet 行為。 NuGet 的預設設定是載入 %AppData%\NuGet\NuGet.config (Windows) 或 $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS),然後從磁碟驅動器的根目錄開始載入任何 nuget.config.nuget\nuget.config ,並結束於目前目錄中。

命令會推送現有的套件。 它不會建立套件。 若要建立套件,請使用 dotnet pack

階層式資料夾結構

此命令可以將套件儲存在階層式資料夾結構中,建議將效能優化。 當發行至本機資料夾 (feed) 時,它會將套件儲存在階層式資料夾結構中,如果摘要中至少有一個封裝位於階層式資料夾結構中,則它 nuget add 就會儲存在階層式資料夾結構中。 如果摘要中已經有階層式資料夾結構化套件, dotnet nuget push 則會採用該結構。 因此,如果您想要使用 .NET CLI 發佈至本機摘要,而不是 NuGet CLI:

  • 發佈第一個套件之前,請移至全域套件資料夾,在 %userprofile%.nuget\packages,然後選取套件標識符的根資料夾。它可以是不屬於架構的任何套件,例如 .NET 標準或 ASP.NET。
  • 將選取的套件資料夾複製到本機摘要的根資料夾中。
  • 使用 dotnet nuget push 將套件發佈至本機摘要。
  • 您現在可以刪除您先前複製的資料夾,而且您可以自由使用 dotnet nuget push 發佈至本機摘要。

或者,針對第一個套件使用 NuGet CLI,然後您可以 dotnet nuget push 用於其餘套件。 如需詳細資訊,請參閱 本機摘要

論點

  • ROOT

    指定要推送之封裝的檔案路徑。

選項

  • --allow-insecure-connections

    允許推送至 HTTP 來源(不安全)。

  • -d|--disable-buffering

    在推送至 HTTP(S) 伺服器時停用緩衝,以減少記憶體使用量。

  • --force-english-output

    強制應用程式使用非變異的英文文化特性來執行。

  • -?|-h|--help

    輸出有關如何使用命令的說明。

  • --interactive

    可讓命令停止,並等候使用者輸入或進行動作。 例如完成驗證。

  • -k|--api-key <API_KEY>

    伺服器的 API 金鑰。

  • -n|--no-symbols

    不會推送符號(即使存在)。

  • --no-service-endpoint

    不會將 「api/v2/package」 附加至來源 URL。

  • -s|--source <SOURCE>

    指定伺服器 URL。 NuGet 會識別 UNC 或本機資料夾來源,並直接複製該檔案,而不是使用 HTTP 推送檔案。

    這很重要

    從 NuGet 3.4.2 開始,除非 NuGet 組態檔指定 DefaultPushSource 值,否則這是必要參數。 如需詳細資訊,請參閱設定 NuGet 行為

  • --skip-duplicate

    將多個套件推送至 HTTP(S) 伺服器時,會將任何 409 衝突回應視為警告,讓其他推送可以繼續。

  • -sk|--symbol-api-key <API_KEY>

    符號伺服器的 API 金鑰。

  • -ss|--symbol-source <SOURCE>

    指定符號伺服器URL。

  • -t|--timeout <TIMEOUT>

    指定以秒為單位推送至伺服器的逾時。 預設為300秒(5分鐘)。 指定 0 會套用預設值。

  • --configfile

    要使用的 NuGet 組態檔 (nuget.config)。 若已指定,僅會使用此檔案中的設定。 若未指定,則將使用當前目錄中組態檔的階層。 如需詳細資訊,請參閱常見的 NuGet 組態

範例

  • 使用 API 金鑰,將 foo.nupkg 推送至 NuGet 配置檔中指定的預設推送來源:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
    
  • foo.nupkg 推送至官方 NuGet 伺服器,並指定 API 金鑰:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
    
  • foo.nupkg 推送至自訂推送來源 https://customsource,並指定 API 金鑰:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
    
  • foo.nupkg 推送至 NuGet 組態檔中指定的預設推送來源:

    dotnet nuget push foo.nupkg
    
  • foo.symbols.nupkg 推送至預設符號來源:

    dotnet nuget push foo.symbols.nupkg
    
  • foo.nupkg 推送至 NuGet 組態檔中指定的預設推送來源,並逾時 360 秒:

    dotnet nuget push foo.nupkg --timeout 360
    
  • 將目前目錄中的所有 .nupkg 檔案推送至 NuGet 組態檔中指定的預設推送來源:

    dotnet nuget push "*.nupkg"
    
  • 將所有 .nupkg 檔案推送至 NuGet 組態檔中指定的預設推送來源,即使 HTTP(S) 伺服器傳回 409 衝突回應:

    dotnet nuget push "*.nupkg" --skip-duplicate
    
  • 將目前目錄中的所有 .nupkg 檔案推送至本機摘要目錄:

    dotnet nuget push "*.nupkg" -s c:\mydir
    
  • 如需推送至 Azure Artifacts,請參閱 Azure Artifacts 的推送檔