有没有办法让 Nuget 更新所有包,同时遵守最严格的版本约束?

问题描述 投票:0回答:1

我在 Visual Studio 中有一个 Sitefinity Web 应用程序,我试图通过 Nuget 尽可能多地更新该应用程序,而无需迁移到新的 Sitefinity 版本。

packages.config
中,我将所有 Sitefinity 软件包限制为版本 13,如下所示:

<package id="Telerik.Sitefinity.All" version="13.3.7649" targetFramework="net48" allowedVersions="(,14.0)" />

这会阻止 Nuget 尝试更新 Sitefinity,但在尝试更新 Sitefinity 的依赖项时仍然会出现“无法解析依赖项”错误。

除了向

every
临时依赖项添加 allowedVersions 约束之外,是否有办法让 Nuget 计算 all 约束,并且仅将包更新到这些约束的限制?

visual-studio nuget
1个回答
0
投票

我通过添加

Newtonsoft.Json
Telerik.Sitefinity.All
(看起来
allowedVersions
在 Nuget Gallery 中不可用)进行了快速测试,发现它可以使 Nuget 更新所有包,同时遵守最严格的版本约束。请检查以下步骤:

1.就我而言,我将

Newtonsoft.Json
所有软件包限制为版本 12,如下所示:

<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net472" allowedVersions="(,13.0)" />

2 安装12.0.1版本。

nuget install packages.config

3 将软件包更新到更新时

latest
下方的
13
版本。

nuget update packages.config

enter image description here

注意

allowedVersions="(,13.0)" 

但是,不建议使用这种形式,因为很难确定最低版本。我建议你使用这种格式

安装/恢复版本13.3.7649,更新期间接受任何13.x版本。

<package id="Telerik.Sitefinity.All" version="13.3.7649" targetFramework="net48" allowedVersions="(13,14)" /

顺便说一下,如果你使用

PackageReference
,可以考虑使用Floating Versions来实现。

© www.soinside.com 2019 - 2024. All rights reserved.