.net core 2.2.0 vs 2.2.7 无法合并,因为版本被项目锁定

Posted

技术标签:

【中文标题】.net core 2.2.0 vs 2.2.7 无法合并,因为版本被项目锁定【英文标题】:.net core 2.2.0 vs 2.2.7 cannot consolidate, because versions locked by project 【发布时间】:2020-02-08 19:47:12 【问题描述】:

我有一个依赖 .net core 2.2 的 Visual Studio 解决方案。一旦更新到sdk 2.2.7,只有一个项目依赖于SDK->Microsoft.NETCore.App 2.2.7;其他项目一直引用 SDK->Microsoft.NETCore.App 2.2.0。

进入 nuget 管理器,合并选项卡,由于“被项目锁定”(见下文),无法对齐项目之间的版本。

有什么想法吗? 非常感谢

洛伦佐

【问题讨论】:

混合 2.2.0 和 2.2.7 是没有意义的。您应该始终以最新的 2.2 版本为目标,以便继续得到 Microsoft 的支持。 嗨,这个问题有什么更新吗? 嗨兰斯。我不在办公室,抱歉回复晚了。是的,它有效。非常感谢 Lex Li,是的,混合是无意义的,但这不是我的选择。它依赖于安装更新的 SDK,VS“自己”管理,在整个解决方案中只更新 1 个项目...... 【参考方案1】:

进入 nuget 管理器,合并选项卡,无法对齐 项目之间的版本,因为“被项目锁定”(见下文)。

请参阅Consolidate tab,当您的解决方案中的一个项目不支持更新时,此选项不起作用。

对于.net coreasp.net core项目,默认使用2.2.0版本,不支持manage packages for solution合并或manage packages for project更新,我们只好更新那些项目——按步骤逐一:

1.右键项目=>编辑xxx.csproj

2.如果存在<PackageReference Include="Microsoft.NETCore.App" />这样的语句,显式添加2.2.0版本:<PackageReference Include="Microsoft.NETCore.App" Version="2.2.0" />。如果不存在这样的语句,请手动添加。

3.现在右键项目=>Manage nuget packages,可以选择2.2.7版本更新。

注意:需要我们在机器上安装相应的sdk和runtime。而且根据Martin的回答,大多数情况下你不需要更新被阻止的项目,请检查你是否有特定的理由来更新或合并它。

【讨论】:

以上是关于.net core 2.2.0 vs 2.2.7 无法合并,因为版本被项目锁定的主要内容,如果未能解决你的问题,请参考以下文章

vs2019 wpf .net core都有哪些没包含.net

Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能

.net core 2.2.0 SOAP踩坑

NET Standard vs Net Core App:创建 .NET Core 项目时(使用控制台或类库)

NET Core & VS Code 之路 Web API

与 VS 2017 dotnet-sdk-2.1.4 和 .NET Core 2.0.6 .NET Core SDK 2.1.101 混淆