0

proget nuget服务器中是否有任何设置可以使其处理版本1.0.1.0=1.0.1

所以基本上当尝试恢复任何版本的包时,它将返回1.0.1.0版本的包。

因为我的项目中有一个带有版本的包,1.0.1.0但是每当我尝试恢复它时,它总是会尝试查找1.0.1,跳过最后一个零,因此它会抛出包不存在的错误。因为proget服务器有1.0.1.0版本。

当我在 Visual Studio 中使用本地文件夹作为 nuget 源时,它可以工作。因为它从本地文件夹恢复了版本1.0.1.0,因为它似乎以某种方式对待本地文件夹1.0.1.0=1.0.1

任何想法?

4

1 回答 1

0

proget nuget 服务器中是否有设置使其考虑版本 1.0.1.0 = 1.0.1

ProGet nuget 服务器没有选项让它考虑 version 1.0.1.0= 1.0.1

我认为这个包是用旧的 nuget cli 打包的<=v 3.3.0。并且由于 nuget ,如果第四个节点自动为零v3.4.4,则 nuget 将删除它。

而最新的VS和nuget如果安装你的包版本,会忽略包版本的第四个零节点1.0.1.0。请参阅此 Microsoft 官方文档

因此,如果您从本地源安装它,或者nuget.org在这些源上安装它,它将从源路径中删除最后一个零。

但是,在ProGet服务器(第三方 nuget 服务器而不是Microsoft)上,它仍然保留了包版本的第四个零节点。所以当你在VS上安装这个包时,它会1.0.1.0packages.config文件中显示版本,当你恢复它时,它会找到1.0.1自nuget新规则以来的版本。

实际上,当您启用 ProGet 包源时,它仍然可以找到version1.0.1.0。在我这边,虽然它仍然显示版本1.0.1.0和 vs 必须1.0.1在恢复过程中捕获,但该项目仍然可以正常运行。

所以我怀疑你和我的环境之间存在一些偏差。

这是我的测试过程:

举个例子

这是我的包裹:

在此处输入图像描述

在 VS 中,它显示 version 1.0.1

在此处输入图像描述

但是,在ProGet nuget 服务器上,它显示 version 1.0.1.0

在此处输入图像描述

建议

首先,尝试先清理 nuget 缓存或删除C:\Users\xxx\.nuget\packages.

然后启用proget nuget服务器包源,记得检查一下:

在此处输入图像描述

============================================

如果您仍然面临错误,您可以按照以下步骤操作:

作为建议,您可以在 nuget.org 上上传您的包,它会自动将您的包剔除到版本1.0.1,然后同步到ProGet nuget 服务器。

当我上传版本1.0.1.0nuget.org,它显示版本1.0.1

在此处输入图像描述

于 2020-07-22T09:51:27.560 回答