2017-07-03 179 views
0

我在UAT上的項目拋出了一個關於我的開發環境中存在的NuGet包的例外(也就是我在我的/ packages文件夾下找到的),但似乎並沒有成爲我解決方案的一部分(也就是我啓動NuGet軟件包管理器,但我無法在安裝的軟件包列表中找到它)。Nuget:我怎麼知道哪個項目引用了一個包?

該代碼在dev上運行良好,但在UAT上崩潰。

我的問題是:我怎麼知道這個庫在哪裏被使用?

回答

1

某些NuGet軟件包無法完全卸載,因此您的項目文件中仍然會有剩餘的引用(.csproj,.vbproj,...)。

首先,檢查包含指向缺少文件夾的<HintPath>的元素<Reference Include="..">。你應該刪除它們。

然後檢查指向缺少文件夾的<Project Import="..." />元素。可能還有一些條件(用於<Error>元素)檢查路徑是否存在。刪除所有這些。

然後刪除包含所有NuGet軟件包的packages文件夾,並重新打開VS中的解決方案並恢復軟件包。

這可能會導致兩種結果:

  1. 它的工作原理,並且成功地刪除了所有「晃來晃去」到的NuGet包不再使用的引用。
  2. 你不能編譯,因爲缺少NuGet包。在這種情況下,請通過軟件包管理界面再次安裝NuGet軟件包。
相關問題