無法部署 NuGet 套件

This article was translated from English: Does it need improvement?
Translated
View the article in English

在嘗試部署 NuGet 套件時,您可能會看到以下一個或多個錯誤訊息:

Failed to deploy NuGet package '_IronPdf.Native.Chrome.Windows(version)'
System.Net.WebException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

可能原因

這些錯誤最常見的原因是與過時的TLS協議有關。截至2020年6月15日, NuGet 已移除對 TLS 1.0 和 1.1 的支援並且現在強制執行 TLS 1.2。如果您的系統未啟用 TLS 1.2,NuGet 命令可能會失敗。

從 HTTP 切換到 HTTPS 不會解決問題,如果 TLS 1.2 未啟用,因為 NuGet 現在需要安全連接。

解決方案

  1. 安裝 Visual C++ 執行時

確保已經 Visual Studio 的 Visual C++ Redistributable 已安裝在您的系統中。缺失的運行時可能會導致某些包(包括 IronPDF)出現問題。

更新 Visual Studio

確保您使用的是最新版本的 Visual Studio。需要 Visual Studio 2015 或更高版本才能正確支持現代 TLS 協議。

  1. 在 Visual Studio 中,前往:

    • 工具 > 擴充功能與更新 > 更新 > Visual Studio Gallery
    • 將 NuGet 包管理器更新到最新版本。

在 .NET 中啟用強加密

如果上述步驟未能解決問題,您可能需要在 .NET 中啟用強加密。這可以通過修改註冊表完成。

  1. 創建一個 .reg 文件,內容如下:
        [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
        "SchUseStrongCrypto"=dword:00000001

        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
        "SchUseStrongCrypto"=dword:00000001
  1. 运行 .reg 文件以更新注册表设置。这样可以在 .NET 中启用强加密,允许使用 TLS 1.2 连接。

无需重启。应用这些更改后,请再次尝试运行您的 NuGet 命令。

有关更多详细信息,请参阅此 Stack Overflow 帖子: NuGet 失敗:基礎連線已關閉:發生意外錯誤。

通過提交聯繫我們 工程需求 如果您需要進一步的協助。