如何更改nuget数据包程序集版本

时间:2019-04-24 12:16:55

标签: c# asp.net-core nuget .net-assembly stackexchange.redis

Visual Studio和我的 Asp.net核心项目中,我使用了一些 nuget数据包(例如StackExchange.RedisSerilog等等..)。我决定使用Visual Studio2019。一切进展顺利,但是有一天,我注意到某些项目无法在解决方案中更新其引用的项目。因为它们(.net标准库)将输出代码带到obj文件夹而不是bin文件夹。 我决定返回Visual Studio2017。VS2017一切正常,但是这次它给了我一个运行时错误,例如找不到引用的程序集公钥等。

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

  

FileNotFoundException:无法加载文件或程序集'StackExchange.Redis,版本= 2.0.0.0,区域性=中性,PublicKeyToken = c219ff1ca8c2ce46'。系统找不到指定的文件。

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

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

  

错误CS0433类型'ConnectionMultiplexer'同时存在   'StackExchange.Redis.StrongName,版本= 1.2.6.0,文化=中性,   PublicKeyToken = c219ff1ca8c2ce46”和“ StackExchange.Redis,   版本= 2.0.0.0,文化=中性,   PublicKeyToken = c219ff1ca8c2ce46'Tursys.Pool.Storage.Api D:\ projects \ tursys \ PoolStorage \ src \ Tursys.Pool.Storage.Api \ Startup.cs 76有效

它们都不存在

2 个答案:

答案 0 :(得分:0)

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

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

如何从项目中删除软件包: 在Visual Studio中,我想使用F12键进入文件。使用open target folder命令,我将已删除软件包的本地文件夹视为

  

C:\ Users \ HAMIT \ AppData \ Local \ Temp \ MetadataAsSource \ 821e7bd605414042826501fe0b5cdc21 \ 32ae5450ea724e84b62f983bdb6bb879

我已经删除了这些临时文件,但是通过重建过程,VS再次将它们还原了。这让我感到无聊,我找到了新的方式。始终存在一种使用 -force 参数从Visual Studio中删除软件包的技术,如下所示,在PM控制台中

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

当您输入此命令时,它将询问您PackageId将被删除。输入您的包裹名称,就可以了!

如果您不完全知道软件包名称,则可以根据项目获得列表,如下所示:

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

更新:我也找到了解决方案!在Visual Studio 2019下将Aspnetcore框架2.2更改为3.0。现在似乎正确了dll,并且一切都已纠正。

答案 1 :(得分:0)

您可以尝试:

  • 安装包“ YourProjectName”-版本6.2.0