如何更改nuget包程序集版本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改nuget包程序集版本相关的知识,希望对你有一定的参考价值。
在Visual Studio
和我的Asp.net核心项目中,我使用了一些nuget数据包(如StackExchange.Redis
,Serilog
等)。我决定使用Visual studio 2019.一切都很顺利,但有一天我注意到有些项目无法在解决方案中更新他们引用的项目。因为它们是(.net标准库)将输出代码转换为obj文件夹而不是bin文件夹。我决定返回Visual Studio 2017.一切都与VS2017一起工作,但这次它给我一个运行时错误,例如找不到引用的程序集公钥等。如下所示
我已经从包管理器nuget manager
中删除了解决方案中所有项目的旧口袋。我已经通过nuget manager工具安装了新版本。但项目似乎总是使用旧版本。
FileNotFoundException:无法加载文件或程序集'StackExchange.Redis,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = c219ff1ca8c2ce46'。该系统找不到指定的文件。
例如,如果我安装了一个nuget数据包版本2.0.0.0,我想从项目中删除它,我想通过升级或降级安装新版本。我该怎么办?我该怎么改变它?
更新:我从nuget和windows中卸载了2个软件包,仍然看到这个程序集的项目!严重性代码描述项目文件行抑制状态
错误CS0433类型'ConnectionMultiplexer'存在于'StackExchange.Redis.StrongName,Version = 1.2.6.0,Culture = neutral,PublicKeyToken = c219ff1ca8c2ce46'和'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
它们都不存在
你可以尝试一下:
- Install-Package“YourProjectName”-Version 6.2.0
为任何人回答我自己的问题:
- VS-2019将其输出文件夹更正为bin文件夹,并修复了新错误!但它与nuget包去除问题无关
如何从项目中删除包:在Visual Studio中,我想使用F12键转到文件。使用open target folder命令,我将删除的包的本地文件夹视为
C:用户哈米德应用程序数据本地的 Temp MetadataAsSource 821e7bd605414042826501fe0b5cdc21 32ae5450ea724e84b62f983bdb6bb879
我删除了这个临时文件但是通过重建过程VS再次恢复它们。这有些让我很无聊,我发现了一种新的方式。在PM控制台中,总是有一种技术可以使用-force参数从VisualStudio中删除包
Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force
当您输入此命令时,它将询问您将删除PackageId。写下您的包裹名称即可!
如果您不完全知道您的包裹名称,那么您可以根据您的项目获得一个列表,如下所示:
Get-Package -ProjectName "YourProjectName"
- 但是卸载到StackExchange.Redis.StrongName仍然是个谜!
更新:我找到了解决方案!在Visual Studio 2019下将Asp Net Core框架2.2更改为3.0。现在似乎正确的dll和Everything更正了。
以上是关于如何更改nuget包程序集版本的主要内容,如果未能解决你的问题,请参考以下文章
.NET System.Drawing.Common 4.5.1 的 NuGet 包包含错误版本的程序集
解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段