簡體   English   中英

nuget 無法識別已安裝的包

[英]nuget doesn't recognize installed packages

我在 Git 上有一個使用 NuGet 庫的 C# 項目。 一切正常,但當我打開一台新機器並在 Visual Studio 中打開解決方案時,由於引用損壞,它無法編譯。 如果我單擊項目下的引用,我可以看到帶有黃色感嘆號的經典警告標志。

Nuget restore 不會做任何事情(而且我仍然沒有發現這個功能的任何用途......),文件 repositories.config 很好。 如果我右鍵單擊解決方案,然后“管理解決方案的 NuGet 包”,則不會顯示已安裝的包。

直到今天,我都是這樣解決的:運行

Install-Package package_name

它說:

'package_name' already installed.
My_project already has a reference to 'package_name'.

...然后它會顯示管理器上的包,這些包已經分配給了正確的項目。


任何地方的代碼都沒有改變,我可以看到,因為 Git 上沒有差異。

我只需要在新機器上做一次,但這真的很煩人。 任何的想法?


NuGet 版本:2.8.60318.667


更新27/07

我在另一台裝有 Windows 10 的 PC 上從頭開始嘗試該過程,一切正常...相同版本的 Visual Studio、NuGet 等...我感到困惑

這可能是因為your.csproj 中的.dll 路徑不正確。 包還原將包下載到本地目錄。 它不會更改程序集在.csproj 中的引用路徑,這意味着該項目仍將嘗試在本地目錄中定位dll。 黃色標記表示項目無法找到程序集。

卸載項目,右鍵單擊項目並選擇“Edit.csproj”,並驗證丟失的 dll 的路徑。 例如 - 如果你有 NUnit,

<Reference Include="nunit.framework">
      <HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>

驗證 dll 是否存在於“\packages\NUnit.3.6.1\lib\net45”目錄中。

從我的腦海中我可以想到軟件包沒有被下載的幾個原因,理想情況下你必須分享更多的細節。

首先,install-package 命令將不起作用。 您的軟件包已經安裝 VS 只是無法下載它們,因此您收到該錯誤是有道理的。

  • 首先,這是一個像 System.MVC.Web 一樣托管在 nuget.org 中的公共包嗎? 因為如果這是在一台新機器上,使用私有 nuget 服務器,您需要在工具 > 選項 > Nuget 包管理器 > 包源中配置該源。 (有關詳細信息,請參閱https://learn.microsoft.com/en-us/nuget/tools/package-manager-ui
  • 檢查您是否已將文件夾添加到您的 git 存儲庫,但同時為其內容設置了排除項。 要檢查當您進行干凈結帳時,請查看文件夾是否存在但為空。 如果是這種情況,只需刪除文件夾,git ignore 應該從現在開始完成它的工作,每個新克隆的人都會進行適當的檢查。
  • 如果以上兩個最有可能是不工作的原因。 嘗試從包管理器控制台恢復包,並使用詳細信息更新您的帖子。

您可以打開包管理器控制台並鍵入:

Update-Package -reinstall

要么

Update-Package -reinstall -Project YourProjectName

僅供參考,Microsoft 提供了全面的文檔 - https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore - 關於恢復 nuget 包的多種方法

嘗試從下面的 nuget 緩存文件夾中刪除你的包,以便 NUGET 被迫從源代碼下載

C:\Users\<<你的用戶名>>\.nuget\packages

我今天遇到了這個問題,升級到最新版本的 VS 2017 (15.8.7) 根本沒有幫助。

檢查您的 packages.config 文件以查看您的 packages 標簽是否如下所示:

<packages xmlns="urn:packages">

如果是這樣,請刪除 xmlns 屬性,這樣它就是:

<packages>

那為我修好了!

我已經解決了這個問題。 按照這個步驟

  1. 在 Visual Studio 中,單擊“工具”>“擴展和更新”。
  2. 導航到Online ,搜索“ NuGet Package Manager for Visual Studio ”並單擊Update
  3. (如果沒有按鈕Update ,導航到Updates > Visual Studio Gallery ,找到“NuGet Package Manager for Visual Studio”並單擊Update 。)
  4. 然后重新啟動 Visual Studio。

即使在解決方案級別安裝它之后,根據您的默認設置,您可能必須選擇您希望它在哪些項目中可用。那是我的問題。

在此處輸入圖像描述

暫無
暫無

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

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