================================
如果您的项目未引用任何其他项目或仅引用未安装相同 nuget 包的项目,我认为该问题与您的项目本身或 VS 环境有关。
在这种情况下,当您已经卸载了 nuget 包时,nuget 包的蓝色图标仍然停留在解决方案资源管理器中,这很奇怪。
请尝试以下建议:
1)禁用Extensions --> Manage Extensions --> Installed下的任何第三方扩展
2) 清理nuget缓存并重置工具下的vs设置->导入和导出设置->重置所有设置
3)然后关闭VS,删除下缓存文件
C:\Users\xxx(current user)\AppData\Local\Microsoft\VisualStudio\16.0_xxx\ComponentModelCache
并删除.vs
隐藏文件夹bin
和obj
文件夹。
4)然后重启VS测试问题是否依然存在。
此外,您可以使用devenv /safemode启动一个干净且初始的 VS,然后测试您的项目。
==================================
如果您的情况是这样的:
您的项目 B引用了一个名为Project A的项目,而 A 也安装了相同的 nuget 包。并且项目 A使用PackageReference nuget 管理格式。
虽然您已经卸载了项目 B 上的 nuget 包,但您的obj
文件夹中仍然有类似 的文件project.assert.json
,xxx.nuget.g.props
这是PackageReference的一个功能。正因为如此,Project B 的 nuget 包管理格式与Project A相同,会将 Project A 中的 dll 传输到Project B中,以便您在项目 B中使用该 dll 。
并且删除隐藏文件夹将删除项目 B.vs
的 nuget 包格式 PackageReference,因为您已经卸载了项目 B上的所有 nuget 包,但文件夹的PackageReference内容仍然存在。obj
所以你应该关闭VS,同时删除Project B的.vs隐藏文件夹、bin和obj文件夹。
注意:重建和清理不会删除以前的恢复文件。
如果这不起作用,我认为您已在B.csproj
文件下编写了此 xml 节点:
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
所以你应该仔细检查你的项目 B ,它仍然会恢复文件project.assert.json
, xxx.nuget.g.props
,.... 作为PackageReference。
因此,如果有,请删除此节点,同时删除.vs
隐藏文件夹bin
和obj
文件夹。