gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:30:24 24 4
gpt4 key购买 nike

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

  • 首先,我尝试编辑 csproj文件并删除这一行:

    <PackageReference Include="System.Collections.Immutable" Version="1.3.1" />
  • 那没有用,因为该包中的类型仍然在编辑器中突出显示。所以我尝试运行 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 时, 唯一弹出的是 project.assets.jsonobj目录。没有一个源文件包含单词 Immutable .那么,我很困惑它是如何被引用的。如何卸载它?

其他一些事情:

  • 我在解决方案资源管理器中检查了我的项目的“依赖项”下拉列表,但那里没有列出。

  • 我不想删除存储库的本地副本并重新克隆它,因为我隐藏了其他工作。

  • 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<> 找到了这一点。没有安装任何东西就存在。果然,我可以开箱即用。

关于c# - NuGet 包拒绝在 .NET Core 库中卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com