c# – NuGet包拒绝在.NET Core库中卸载

我正在VS2017中创建一个.NET Core xUnit测试项目库.我不小心安装了System.Collections.Immutable NuGet包,现在我想卸载它.

>首先,我尝试编辑csproj文件并删除此行:

<PackageReference Include="System.Collections.Immutable" Version="1.3.1" />

>那不起作用,因为该包中的类型仍然在编辑器中突出显示.所以我尝试在Package Manager Console中运行Uninstall-Package System.Collections.Immutable.
>控制台说它找不到包,所以我尝试将< PackageReference ...行放在上面并再次运行Uninstall-Package.控制台说卸载成功,但VS仍然认识到类型.
>我尝试关闭VS,删除.vs /,并重新打开.它仍然认识到这些类型.
>我尝试了git存储我的更改,运行git clean -xdf,并从命令行运行dotnet restore.不知何故,它仍然输出

$dotnet restore
Restoring packages for C:\cygwin64\home\james\Code\cs\BlockList\src\BlockList\BlockList.csproj...
Restoring packages for C:\cygwin64\home\james\Code\cs\BlockList\src\BlockList.Tests\BlockList.Tests.csproj...
...
Installing System.Collections.Immutable 1.2.0.
Installing System.Collections.Immutable 1.3.0.
...

>我也尝试从Visual Studio而不是命令行恢复.仍然没有运气.

当我搜索我的仓库中的所有文件中的单词Immutable时,弹出的唯一内容是obj目录中的project.assets.json.没有一个源文件包含单词Immutable.那么,我很困惑,至于它是如何被引用的.我该如何卸载它?

其他一些事情:

>我在解决方案资源管理器中检查了我的项目的’Dependencies’下拉列表,但它没有列在那里.
>我不想删除我的本地副本并重新克隆它,因为我还有其他工作被隐藏起来.
> System.Collections.Immutable.dll根本没有显示在bin /目录中,但是当我在我的库中使用其中一种类型并运行它时,它工作正常.

谢谢!

编辑:将此行添加到库中:

System.Diagnostics.Debug.WriteLine(typeof(ImmutableArrayExtensions).GetTypeInfo().Assembly.Location);

运行它说组件位于这个位置:

C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2\System.Collections.Immutable.dll

解决方法:

大约一个小时后,我发现了问题所在.我的.NET Core库引用了Microsoft.NETCore.App,它引用了System.Collections.Immutable.我查看了前者的依赖关系,但忽略了System.Collections.Immutable,因为该包引用了其他50个包.我最终通过创建一个全新的xUnit测试项目找到了这一点,并试图看看ImmutableArray<>没有安装任何东西.果然,我可以开箱即用.

上一篇:如何将一个.NET Core类库发布到NuGet


下一篇:c# – 将Amazon S3 Nuget与Xamarin Android App结果包含在FileNotFoundException中