Nuget:我怎么知道哪个项目引用了一个包?
问题描述:
我在UAT上的项目抛出了一个关于我的开发环境中存在的NuGet包的例外(也就是我在我的/ packages文件夹下找到的),但似乎并没有成为我解决方案的一部分(也就是我启动NuGet软件包管理器,但我无法在安装的软件包列表中找到它)。Nuget:我怎么知道哪个项目引用了一个包?
该代码在dev上运行良好,但在UAT上崩溃。
我的问题是:我怎么知道这个库在哪里被使用?
答
某些NuGet软件包无法完全卸载,因此您的项目文件中仍然会有剩余的引用(.csproj
,.vbproj
,...)。
首先,检查包含指向缺少文件夹的<HintPath>
的元素<Reference Include="..">
。你应该删除它们。
然后检查指向缺少文件夹的<Project Import="..." />
元素。可能还有一些条件(用于<Error>
元素)检查路径是否存在。删除所有这些。
然后删除包含所有NuGet软件包的packages
文件夹,并重新打开VS中的解决方案并恢复软件包。
这可能会导致两种结果:
- 它的工作原理,并且成功地删除了所有“晃来晃去”到的NuGet包不再使用的引用。
- 你不能编译,因为缺少NuGet包。在这种情况下,请通过软件包管理界面再次安装NuGet软件包。