簡體   English   中英

通過 Nuget 安裝包 - “中央目錄損壞”

[英]Installing Packages through Nuget - "Central Directory corrupt"

我正在嘗試使用 NuGet(在 VS2015 中)向我的項目添加一個包。 當我點擊“安裝”按鈕時,我看到

正在下載丟失的包...

在屏幕頂部有一個進度條。

片刻之后,消息被替換為 -

嘗試恢復包時發生錯誤:中央目錄已損壞。

最后有一個“恢復”按鈕,它執行相同的過程。

任何人都知道如何解決這個問題?

編輯 07/2017

解決此問題的一種更簡單的方法是讓 Visual Studio 重新下載包 -

  1. 在 Visual Studio 中打開Tools -> Options
  2. 選擇NuGet Package Manager
  3. 確保同時選中Allow NuGet to download missing packagesAutomatically check for missing packages during build in Visual Studio
  4. 單擊OK
  5. 在文件資源管理器窗口中導航到項目的“packages”文件夾。
  6. 三種選擇——
    • 按照原始答案中的描述找出哪個包有問題並刪除它的文件夾。
    • 如果您不確定它們在 NuGet 中是否仍然可用,請將所有包移動到一個臨時位置(之后您需要將丟失的包復制回來)
    • 如果您確定所有包在 NuGet 中仍然可用,請刪除所有包文件夾。
  7. 返回 Visual Studio 構建您的解決方案。
  8. Visual Studio 應下載所有包。

原始答案

好的,這里的問題是一個包的.nupkg文件(在項目根/packges/包文件夾中找到)在某個時候已損壞並且大小為零。

在嘗試使用包管理器控制台手動安裝隨機包后,我弄清楚了哪個包已損壞 -

Install-Package *package name*

這告訴我當前安裝的軟件包有問題 -

安裝包:檢索“包名稱”的包元數據時出錯....

從那里我可以通過執行以下操作來修復它 -

  1. 導航到 NuGet站點
  2. 使用頁面頂部的搜索工具搜索項目
  3. 使用左側的“下載”鏈接下載.nupkg文件(檢查版本號)。
  4. 將下載的文件復制到“packages”文件夾中的舊文件上。

刪除 \packages\ 下的所有 nuget 包(我有多個損壞的包)

在 Visual Studio 中轉到您的解決方案,然后按“恢復 Nuget 包”

重建您的解決方案

應該修復:)

1.首先閱讀錯誤。

2.找到錯誤控制台上列出的目錄。 1.文件資源管理器==>>

例如,我的路徑是。 C:\Code\Ex_Nikesh\20\packages在Packages中找到Microsoft.SqlServer.Types.xx.xxx.xx.xx (xx表示版本號)

3.在文件夾中找到Microsoft.SqlServer.Types.xx.xxx.xx.xx.nu (Nuget 包文件 [在我的情況下文件大小為 0 KB])刪除該文件。

4.現在下載文件並粘貼到 Microsoft.SqlServer.Types.xx.xxx.xx.xx 文件夾中 點擊這里下載 Nuget 文件

我的問題是以下文件夾中的損壞 zip 文件:C:\Program Files (x86)\Microsoft SDKs\NuGetPackages

我清除了所有這些包(離線存儲庫)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM