如何更改 nuget 包程序集版本

How to change a nuget packet assembly version

Visual Studio 我的 Asp.net 核心项目 中,我使用了一些 nuget 数据包(比如 StackExchange.RedisSerilog 等等)。我决定使用 Visual studio 2019。一切都很顺利,但有一天我注意到一些项目无法更新他们在解决方案中引用的项目。因为它们(.net 标准库)将输出代码带到 obj 文件夹而不是 bin 文件夹。 我决定 return Visual Studio 2017。VS2017 的一切都很好,但这次它给了我一个 运行 时间错误,例如找不到引用的程序集 public 键等。 . 如下所示

我已经从包管理器 nuget manager 的解决方案中的所有项目中删除了旧口袋。我已经通过 nuget 管理器工具安装了一个新版本。但是项目似乎总是使用旧版本。

FileNotFoundException: Could not load file or assembly 'StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46'. The system cannot find the file specified.

例如,如果我安装了一个 nuget 数据包版本 2.0.0.0,并且我想将其从项目中全部删除,并且我想通过升级或降级来安装新版本。我应该怎么办?我该如何更改它?

更新:我已经从 nuget 和 windows 中卸载了 2 个包,仍然项目看到了这个程序集! 严重性代码说明项目文件行抑制状态

Error CS0433 The type 'ConnectionMultiplexer' exists in both 'StackExchange.Redis.StrongName, Version=1.2.6.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46' and 'StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46' Tursys.Pool.Storage.Api D:\projects\tursys\PoolStorage\src\Tursys.Pool.Storage.Api\Startup.cs 76 Active

两者都不存在

为任何人回答我自己的问题:

  • VS-2019 使用新的错误修复将其输出文件夹更正为 bin 文件夹!但与nuget包删除问题无关

如何从项目中删除包: 在 Visual Studio 中,我想使用 F12 键转到文件。使用打开目标文件夹命令,我看到已删除包的本地文件夹为

C:\Users\HAMIT\AppData\Local\Temp\MetadataAsSource1e7bd605414042826501fe0b5cdc21ae5450ea724e84b62f983bdb6bb879

我已经删除了这个临时文件,但是通过重建过程 VS 再次恢复了它们。这让我有些无聊,我找到了一种新方式。总是有一种技术可以使用 -force 参数从 VisualStudio 中删除包,如下面的 PM Console

Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force

当您输入此命令时,它会询问您将删除 PackageId。写下你的包名就可以了!

如果您不确切知道您的包名称,那么您可以根据您的项目获得如下列表:

Get-Package -ProjectName "YourProjectName"
  • 但是卸载到StackExchange.Redis.StrongName还是个谜!!!

更新:我也找到了解决方案!在 Visual Studio 2019 下将 Aspnetcore 框架 2.2 更改为 3.0。现在似乎正确的 dll 和所有内容都已更正。

你可以试试:

  • 安装包 "YourProjectName" - 版本 6.2.0