我在 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 约束,并且仅将包更新到这些约束的限制?
我通过添加
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
注意:
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来实现。