簡體   English   中英

無法添加對已安裝 NuGet 包的引用?

[英]Unable to add reference to installed NuGet package?

我創建了一個 NuGet 包,並且能夠在另一個 .NET 解決方案中成功安裝它。 但我無法從其他 .NET 解決方案中添加對 NuGet 包的引用。

例如,NuGet 包有一個類,其命名空間類似於MyCorp.SecurityApi 我目前無法在其他 .NET 解決方案中為該命名空間添加 using 指令。 例如, using MyCorp.SecurityApi指令返回此編譯錯誤:

找不到類型或命名空間“MyCorp”

知道問題可能是什么或如何調試嗎?

確保在解決方案資源管理器中使用“參考”仔細檢查“命名空間”名稱,無論它是否存在。 如果沒有,您應該考慮重新安裝。 在 Nuget 包管理器控制台中使用以下命令:

Update-Package -Id <package_name> –reinstall

或者這將重新安裝限制為僅特定項目:

Update-Package <package_name> -ProjectName MyProject -reinstall

如果您仍然無法做到這一點,請嘗試將相關的 .dll 手動添加到您的項目中,看看它是否可以正常工作。 如果確實如此,則問題很可能出在該 nuget 包的配置上,在這種情況下,我建議您閱讀這些文檔並縮小問題的范圍。

我會首先嘗試做一個

Update-Package -Id <package_name> –reinstall

如 Mikaal 的回答中所述。

但在某些情況下,這也可能會失敗,因為packages文件夾已損壞。 根據平台的不同,它位於不同的路徑中:

  • .NET 中,可以在項目目錄中找到此文件夾(通常,在解決方案文件*.sln所在的文件夾中)。

  • .NET Core 中,您可以通過將以下行粘貼到文件資源管理器的路徑中來找到它(通過WIN + E打開它,然后將上面的行粘貼到路徑文本框中):

    %appdata%\\..\\..\\.nuget\\packages\\

在那里,嘗試找到包並刪除文件夾及其內容。 如果轉到 Visual Studio 中的依賴項,包,右鍵單擊包並從屬性窗口復制路徑,也可以找到路徑。 請注意,您可能需要在刪除之前關閉 Visual Studio,因為文件可能已被鎖定。

重要提示:驗證它在 Visual Studio(依賴項)中不再被引用。 如果是,請刪除所有依賴項。

最后,打開包管理器並添加包(即右鍵單擊項目,選擇“管理 NUGET 包...”,切換到瀏覽選項卡,選擇包並單擊安裝)。

問題可能是由於:

  • nuget 包 (MyCorp.SecurityApi) 和嘗試使用它的應用程序的目標框架不兼容
  • 不兼容的平台架構(即如果 MyCorp.SecurityApi 僅是 x64,則不能用於構建 x86 應用程序)
  • 某些類的可見性,即如果類是內部類,則它不能僅用於 MyCorp.SecurityApi 程序集,也不能用於其他程序集 - 您的應用程序)。

建議您檢查上述原因,希望對您有所幫助

這是我創建的第一個 NuGet 包。 我想出了這個問題,我正在為其他 NuGet 新手發布這個。 在“NuGet 包資源管理器”中:

  1. 內容 > 添加 > Lib 文件夾
  2. 右鍵單擊“lib”文件夾並選擇“添加現有文件...”
  3. 在選擇文件對話框中,從源解決方案的 bin\\obj 中選擇所有文件

安裝后,我的 NuGet 包現在顯示在項目引用中。 這里有沒有其他人有任何其他提示來優化這個過程?

暫無
暫無

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

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