NuGet.org 常見問題集

授權條款

如果套件未提供特定授權資訊,則預設授權條款是什麼?

每個套件都是受套件隨附的條款所控管。 您應該先檢閱適用的條款,再存取、下載或取得任何套件。 在 NuGet.org 上,使用套件頁面上的授權資訊連結。

如果套件未指定授權條款,請使用 NuGet.org 套件頁面上的連絡擁有者連結直接與套件擁有者連絡。 Microsoft 不會將任何智慧財產權從協力廠商套件提供者授權給您,而且不負責協力廠商所提供的資訊。

在 Nuget.org 上管理套件

我可以在上傳套件之後編輯套件中繼資料嗎?

NuGet 建議簽署所有套件。 套件簽署的設計原則是已簽署的套件內容必須是不可變的,其中包含 nuspec。 編輯套件中繼資料會導致 nuspec 變更,並讓現有簽章失效。 建議修改現有工作流程,使其不需要在建立套件之後編輯套件中繼資料。

請注意,會自動從您套件本身產生針對套件所列出的相依性,而且無法進行編輯。

此外,將套件上傳至 int.nugettest.org 是測試及驗證您套件的好方法,完全無須將套件設為可在公開資源庫中使用。 API 端點:https://apiint.nugettest.org/v3/index.json

我可以刪除已經發行至 NuGet.org 的套件嗎?

一般而言,我們不支援刪除發行至 NuGet.org 的套件。深入瞭解有關 刪除套件的原則。

可以保留將在未來發行之套件的名稱嗎?

是。 要求帳戶的套件識別碼前置詞,即可在 NuGet.org 上保留套件的識別碼。 若要要求套件識別碼首碼,請遵循文件中的指示。

如何宣告套件擁有權?

如何處理違反我軟體授權的套件擁有者?

鼓勵 NuGet 社群合作,以解決套件擁有者與其他軟體擁有者之間可能發生的任何爭議。 我們已製作可在要求 NuGet.org 管理員仲裁之前遵循的爭議解決程序

建議將測試套件上傳到 NuGet.org 嗎?

基於測試目的,您可以使用 int.nugettest.org 或替代的公開 NuGet 伺服器,例如 myget.orgAzure DevOps

請注意,上傳到 int.nugettest.org 的套件不會保留。

上傳到 NuGet.org 的套件大小上限為何?

NuGet.org 允許最多 250MB 的套件,但建議盡可能保持 1MB 的套件,並使用相依性將套件連結在一起。 根據經驗法則,套件只包含一個組件來避免發生衝突。

NuGet 使用 HTTP 來下載套件,因此較大的套件與較小的套件相較之下更有可能會讓安裝失敗。

可能會在多個套件之間共用相依性,讓 NuGet 套件取用者的總下載大小變小。

相依性大部分是靜態的,而且永遠不會變更。 使用程式碼修正 Bug 時,可能不需要更新相依性。 如果您組合相依性,則每次最後都會得到較大的套件。 將 NuGet 套件分割為相關相依性,以更精細地調整您套件取用者的升級。

無法存取 NuGet.org

NuGet.org 支援哪些 SSL/TLS 版本和加密套件?

NuGet.org 支援 TLS 1.2 和下列加密套件:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

為什麼無法從 NuGet.org 還原套件?

如果您在從 NuGet.org 還原套件時遇到暫時性失敗,建議您:

  • 使用最新版的 NuGet 用戶端,提供更佳的復原能力支援。
  • 使用 NuGet 用戶端的環境變數來增強 CI 機器上的重試原則。
環境變數 描述 備註
NUGET_ENABLE_ENHANCED_HTTP_RETRY 啟用或停用 NuGet 中的增強式 HTTP 重試。 可能的值為 true (預設值,因為 .NET CLI 6.0.300、NuGet CLI 6.2、Visual Studio 2022 17.2 版) 或 false
NUGET_ENHANCED_MAX_NETWORK_TRY_COUNT 設定啟用增強重試時,應重試 HTTP 連線的最大次數。 數位,表示要執行的重試次數,預設值為 6
NUGET_ENHANCED_NETWORK_RETRY_DELAY_MILLISECONDS 設定啟用增強重試時,在重試 HTTP 連線之前,以毫秒為單位等候的時間量。 要等候的毫秒數,預設值為 1000

注意

這些環境變數可從 .NET CLI (.NET SDK) 6.0.100、NuGet CLI 6.0、Visual Studio 2022 17.0 版和對應的 MSBuild 版本開始提供。 請參閱 NuGet 版本資訊

如果該版本的 NuGet 用戶端繼續失敗,請連絡支援人員並提供其他連線疑難解答資訊,包括:

  • 您所使用的套件來源
  • 您使用的 NuGet 用戶端版本
  • 含詳細之詳細資訊的還原記錄
  • MTR 或 Fiddler 追蹤 (請參閱下面)
  • 您的地理區域
  • 您的機器是否有 Proxy 或防火牆保護?
  • 您的機器是否位於雲端提供者的資料中心 (Azure、AWS 等)? 如果是的話,請提供提供者的名稱及區域。

擷取 MTR:

  • 下載 WinMTR

  • 輸入 api.nuget.org 作為主機名稱,然後按一下 [啟動]

  • 等候 [ 傳送 ] 數據行 = >100。

    Capturing MTR

  • 將文字複製至剪貼簿。

擷取 Fiddler:

  • 安裝最新版的 Fiddler
  • 啟動 Fiddler,並使用 [ 檔案 > 擷取流量] 功能表停用擷取流量
  • 移除所有工作階段 (選取清單中的所有項目,並按 Delete 鍵)。
  • 藉由在 [工具 > Fiddler 選項] 功能表的 [HTTPS] 索引標籤中,檢查 [解密 HTTPS 流量],設定 Fiddler 以擷取 HTTPS 流量
  • 關閉 Visual Studio。
  • 啟用 [檔案>擷取流量] 功能表。
  • 啟動 Visual Studio 或 nuget.exe,然後執行無法運作的動作。 這些動作所產生的流量應該會顯示在 Fiddler 中。
  • 執行動作之後,請使用 [檔案 > 儲存 > 所有會話 ] 來儲存擷取的會話。

注意:可能必須將 HTTP_PROXY 環境變數設定為 http://127.0.0.1:8888,以透過 Fiddler 路由傳送 NuGet 流量。

如果該作業失敗,請嘗試這篇 StackOverflow 文章所提及的祕訣

NuGet.org 帳戶管理

如何復原 NuGet.org 密碼登入?

請注意, NuGet.org 密碼登入已停止。 不幸的是,NuGet.org 無法復原密碼帳戶,您只能使用個人 Microsoft 帳戶 (MSA) 或 Azure Active Directory (AAD) 帳戶登入 NuGet.org。

如果您無法使用 Microsoft 登入, 請遵循步驟來復原您的 NuGet.org 帳戶

如果您需要將套件擁有權轉移至不同帳戶的協助,請將電子郵件傳送至 support@nuget.org,讓我們知道。

哪一個 Microsoft 帳戶連結到我的 NuGet.org 帳戶?

若您忘了哪一個 Microsoft 帳戶與您的 NuGet.org 帳戶建立關聯,請遵循下列步驟以取得協助。

  1. 前往 NuGet.org 登入頁面,然後按一下 Need assistance signing in? (需要登入上的協助嗎?) 連結。
  2. 這將會顯示提供協助的快顯對話方塊。 遵循此對話方塊中的步驟,即可得知與您 NuGet.org 帳戶建立關聯的 Microsoft 帳戶。

如何變更我用來登入 NuGet.org 的 Microsoft 帳戶?

若您想要變更 NuGet.org 使用者的 Microsoft 帳戶,請遵循下列步驟。 假設電子郵件為 account1@outlook.com 的 Microsoft 帳戶與使用者名稱為 MyNuGetAccount 的 NuGet.org 帳戶建立關聯。 且您希望將登入帳戶變更成電子郵件為 account2@outlook.com 的另一個 Microsoft 帳戶

  1. 請使用 目前關聯的 Microsoft 帳戶登入,也就是按一下 [使用 Microsoft 帳戶登入] 後,登入頁面上的 account1@outlook.com

  2. 登入後,前往帳戶設定頁面。

  3. 展開登入帳戶區段。 按一下 [變更帳戶] 按鈕。

  4. 系統會將您重新導向至 Microsoft 登入頁面。 請使用您要將關聯變更為 的帳戶登入,也就是 account2@outlook.com注意:您可能需要在登入流程期間按兩下 [註銷],並使用不同的帳戶登入,才能使用不同的 Microsoft 帳戶登入。

  5. 若您看到以下錯誤訊息,請參閱 Microsoft 帳戶已與另一個 NuGet.org 帳戶連結,以取得詳細資訊。

    無法使用 『account2 account2@outlook.com』 更新 Microsoft 帳戶。 This could happen if it is already linked to another NuGet account. 如需詳細資訊,請連絡支援人員。

  6. 使用第二個帳戶成功登入後,系統會將您重新導向回 NuGet.org 帳戶設定頁面,您現在應該會看到新的 Microsoft 帳戶已建立關聯,成為登入帳戶。 之後,您在登入 NuGet.org 時,應使用此帳戶。

Microsoft 帳戶已與另一個 NuGet.org 帳戶連結。

若您嘗試變更 Microsoft 登入,並看到以下錯誤訊息:

無法使用 『account2 account2@outlook.com』 更新 Microsoft 帳戶。 This could happen if it is already linked to another NuGet account. 如需詳細資訊,請連絡支援人員。

假設您嘗試為使用者名稱為 MyNuGetAccount1 的 NuGet.org 使用者,將 Microsoft 帳戶登入從 account1@outlook.com 變更為電子郵件為 account2@outlook.com 的另一個 Microsoft 帳戶。 然後看到以上錯誤訊息。

**上述錯誤代表什麼意思?

這代表有與 Microsoft 帳戶建立關聯的另一個 NuGet.org 帳戶,且您嘗試將其變更為以上範例中,已與另一個 NuGet.org 帳戶 (使用者名稱為 MyNuGetAccount2) 建立關聯的 Microsoft 帳戶 (電子郵件為 <account2@outlook.com>)。

您無法使用連結到其他 NuGet.org 帳戶的 Microsoft 帳戶,變更已建立關聯的登入。

我忘了我有另一個 NuGet.org 帳戶,要如何找出哪一個是我的 NuGet.org 帳戶?

使用登入頁面上的第二個 Microsoft 帳戶登入。 這會將您登入目前與第二個 Microsoft 帳戶建立關聯的 NuGet.org 帳戶。 您接著可以檢視此帳戶上的已更新套件,及進行帳戶管理。

我不在乎第二個 NuGet.org 帳戶,而且想要使用第二個 Microsoft 帳戶變更第一個 NuGet.org 帳戶的登入。 我該如何處理?

如果您不在乎第二個 NuGet.org 帳戶,但仍想使用電子郵件為 account2@outlook.com 的關聯 Microsoft 帳戶。

您可以透過刪除 NuGet.org 帳戶,解除 Microsoft 帳戶與 NuGet.org 帳戶間的關聯。

  1. 請遵循這些步驟,以刪除第二個 NuGet.org 帳戶 MyNuGetAccount2 的使用者
  2. 刪除此帳戶後,即可重試這些步驟來變更 Microsoft 帳戶登入

等一下,我也需要這第二個帳戶。 我不想要失去此帳戶,但要變更第一個帳戶的關聯帳戶登入。

您必須建立/使用第三個 Microsoft 帳戶,也就是電子郵件為 account3@outlook.com 的帳戶。

  1. 首先,您應該使用第二個 Microsoft 帳戶登入, account2@outlook.com NuGet.org。請遵循上述步驟來變更相關聯的登入,並將第三個 Microsoft 帳戶與此 NuGet.org 帳戶產生關聯。
  2. 完成後,電子郵件為 account2@outlook.com 的第二個 Microsoft 帳戶就可以與第一個 NuGet.org 帳戶 MyNuGetAccount1 建立關聯。 遵循上述相同步驟,以將 Microsoft 登入變更為第二個 Microsoft 帳戶。

使用 Microsoft 帳戶登入,但顯示我的電子郵件已連結到另一個 Microsoft 帳戶

若您嘗試使用 Microsoft 帳戶,也就是電子郵件 account1@outlook.com 登入,且看到以下錯誤訊息:

The account with email 'account1@outlook.com' is linked with another microsoft account.

If you would like to update the linked Microsoft account you can do so from the account settings page. (電子郵件為 'account1@outlook.com' 的帳戶已與另一個 Microsoft 帳戶連結。若您想要更新已連結的 Microsoft 帳戶,可以從帳戶設定頁面執行此動作。)

以上錯誤訊息代表什麼意思?

在 NuGet.org 建立帳戶時,通訊電子郵件地址會與該帳戶建立關聯。 這通常與關聯 Microsoft 帳戶使用的電子郵件地址相同。 不過,您可以選擇指定其他電子郵件地址進行通訊。 所以,技術上來說,您可以擁有其他 Microsoft 帳戶 (亦即 account2@outlook.com),且連結到通訊電子郵件地址為 account1@outlook.com 的 NuGet.org 帳戶。

因此,上方的錯誤訊息代表已經有通訊電子郵件地址為 account1@outlook.com 的現有 NuGet.org 帳戶,但卻與電子郵件不是account1@outlook.com 的另一個 Microsoft 帳戶建立關聯。

如何找出哪一個 Microsoft 帳戶連結到此 NuGet.org 帳戶?

您應使用登入協助流程,找出哪一個 Microsoft 帳戶連結到電子郵件地址為 account1@outlook.com 的 NuGet.org 帳戶。

無法使用 Microsoft 登入,如何復原 NuGet.org 帳戶?

如果您嘗試使用 登入協助 ,且無法存取與您 NuGet.org 帳戶相關聯的 Microsoft 帳戶,請連絡您的 Microsoft 帳戶支援:

如何將我的 NuGet.org 帳戶轉換為組織?

如果您想要將您的帳戶轉換成組織,請遵循 nuget.org 上組織檔中提供的步驟。

具有非受控租用戶的 AAD 帳戶遇到 NuGet.org 登入問題?

如果您在使用電子郵件帳戶的登入流程 domain(@yourdomain.com 期間看到如下的錯誤,請參閱下列步驟來復原您的 NuGet.org 帳戶。

Error during login for AAD accounts

這項登入期間的非受控狀態是什麼? 為什麼現在會發生這個問題?

看來您的帳戶之前註冊為個人 Microsoft 帳戶,且沒發生什麼問題,不過現在您的帳戶似乎已註冊為 Azure Active Directory (用來驗證 Microsoft 帳戶的識別服務) 中的「非受控」租用戶。

如果您或貴組織(電子郵件地址@yourdomain.com為電子郵件位址)向其中一個 AAD 整合式服務註冊,或對 Azure Active Directory 進行自助式註冊,則可能發生此情況,這會針對您案例中所使用的 Microsoft 帳戶建立這類「非受控」租使用者 domain(@yourdomain.com)。

該如何復原我的帳戶?

目前,我們 (NuGet.org) 無法驗證在 Azure Active Directory 中具有這類「非受控」租用戶帳戶的帳戶。 我們正在尋找更好的方法來驗證這類帳戶。

如果您想要使用 Microsoft account(@yourdomain.com 登入 NuGet.org,您(或貴公司的系統管理員)必須藉由執行 DNS 驗證來驗證電子郵件位址 “@yourdomain.com” 的使用者,以宣告 AAD 的擁有權。 請遵循由 Azure Active Directory 所記載網域系統管理員接管的步驟。 完成後,您的一般登入應開始正常運作。

如何變更我的 NuGet.org 帳戶使用者名稱?

您可以從要更新之帳戶的電子郵件地址傳送電子郵件, support@nuget.org 以要求使用者名稱變更。 請務必包含要變更的舊用戶名稱和新用戶名稱。 然後,我們將檢閱您的要求,並在核准時收到您確認,我們即將採取正確的動作,並了解後果。 確認之後,我們將變更您的用戶名稱。

重要

  • 舊的用戶名稱仍會 保留。 您將無法再次重複使用舊的用戶名稱, 這包括大小寫的變更。
  • 因此,我們也無法還原這項變更。
  • 您舊使用者名稱設定檔頁面的任何連結都不會 https://www.nuget.org/profiles/OldUsername重新導向至您的新設定檔。
  • 您帳戶目前擁有的套件版本仍會包含存放庫簽章中的舊用戶名稱。 新的套件版本將包含新的用戶名稱。
  • 在參考舊使用者名稱或其他識別資訊的現有套件版本中,任何作者提供的元數據都不會變更。
  • 判斷信任舊用戶名稱的 NuGet 用戶端原則不會隱含信任新使用者名稱所發佈的套件。 設定這些客戶端原則的套件取用者必須在嘗試更新至新發佈的套件版本時手動更新它們,以信任您的新用戶名稱。

如何刪除我的 NuGet.org 帳戶?

請注意,若要刪除您的帳戶,建議轉換您為唯一擁有者的所有套件擁有權。 您可以深入了解如何管理套件擁有者。 這也有助於我們加速處理您的要求。

若您要將您的帳戶轉換為組織,請依照將我的 NuGet.org 帳戶轉換為組織

重要

刪除使用者會導致以下情形:

  1. 將保留您的使用者名稱,而且將沒有人可以重複使用它來建立個人帳戶或組織帳戶
  2. 撤銷關聯的 API 金鑰。
  3. 移除帳戶在所有子套件上的擁有者身分。
  4. 解除所有先前既存識別碼前置詞保留與此帳戶的關聯。
  5. 移除帳戶在所有組織的成員身分。

請遵循下列步驟以繼續刪除帳戶。

  1. 使用您想要刪除的帳戶登入 NuGet.org
  2. 按一下此 URL:https://www.nuget.org/account/delete,然後遵循這些步驟,以提交刪除帳戶的要求。

我們的客戶支援會處理此要求,並將帳戶刪除。

刪除 Microsoft 帳戶時,我的 NuGet.org 帳戶會發生什麼情況?

當您用來登入 nuget.org 帳戶的 Microsoft 或 Azure Active Directory 帳戶已刪除時,也會刪除您的 nuget.org 帳戶。 從 Microsoft 帳戶刪除日期起,nuget.org 客戶支援在 30 天內完成帳戶刪除動作。

如果您有與您的帳戶相關聯的套件,我們會在進行刪除前 3 個工作天通知您,並提供協助,以將套件轉移至不同的 nuget.org 帳戶。