簡體   English   中英

Nuget Package ...在項目中不存在...包...已經存在於文件夾中

[英]Nuget Package … does not exist in project … Package … Already exists in folder

我一直在與這個錯誤斗爭幾個小時,無法找到一個有效的解決方案。

我在一個多項目解決方案中有一個ASP.Net API,它的參考/依賴項配置不正確,我一直試圖修復它兩天。

問題是( 我相信 )API缺少System.Web.Http / System.Web.Http.WebHost,它顯然包含在Microsoft.AspNet.WebApi.Core中(每多個其他Stack Overflow問題)。 當試圖通過Nuget安裝它時,我嘗試解決依賴關系時收到以下錯誤。 此外,我每次都遇到此錯誤(請參閱本問題后面的疑難解答):

Package Manager控制台的屏幕截圖

我沒有按特定順序完成以下步驟(各種組合多次):

  • 運行'Update-package Microsoft.AspNet.WebApi.Core -reinstall'
  • 刪除解決方案范圍的“Packages”文件夾並刪除項目的packages.config並嘗試還原包
  • 從物理驅動器和TFS中刪除整個項目,並從頭開始重新創建它(它創建時引用不正確)
  • 通過命令行和Nuget GUI安裝軟件包
  • 檢查解決方案到我硬盤上的不同位置,嘗試盡可能新鮮
  • 重新啟動計算機/重新啟動Visual Studio

在這一點上,只要修復它,我就可以使用非干凈的修復程序。 API在某一點上工作,但后來我將其檢入TFS,創建了一個分支,現在正在分支機構工作。 可能有一些依賴項沒有被包括在內(?)但是即使是這種情況,似乎我采取的步驟應該可以解決問題。

關閉解決方案,然后轉到硬盤驅動器上的packages文件夾並刪除其所有內容。 在Visual Studio中再次打開您的應用程序,它將自動嘗試還原包。 清理解決方案並構建它。

清除緩存為我解決了問題。 可以選擇清除工具>選項> NuGet包管理器>常規菜單中的緩存 ,稱為清除所有NuGet緩存

首先,通過包管理器控制台卸載特定的NuGet包

然后,請右鍵單擊 - >卸載項目,卸載引用此nugget包的項目。

卸載后右鍵單擊項目並選擇“編輯{項目名稱} .csproj”

在先前卸載的XML中找到NuGet包條目並將其刪除。

從包管理器控制台再次安裝包...

沒有其他答案對我有用。 它一直在無限循環的安裝,恢復,重啟VS,從未取得任何進展。

我最終要做的是:

  1. 關閉VS.
  2. 從packages文件夾中刪除有問題的包。
  3. 手動編輯packages.config文件,添加我需要安裝的軟件包名稱和版本。
  4. 當我再次打開解決方案時,我右鍵單擊該項目並說“管理NuGet包”並單擊橫幅上顯示的“恢復”按鈕。 這安裝了拒絕安裝的軟件包。

大聲喊叫! 微軟需要從紗線上吸取教訓,了解如何正確地進行包管理。

暫無
暫無

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

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