C# .NET核心SDK/运行时和NuGet软件包版本必须匹配吗?

C# .NET核心SDK/运行时和NuGet软件包版本必须匹配吗?,c#,asp.net-core,.net-core,nuget,C#,Asp.net Core,.net Core,Nuget,我目前有一个ASP.NET Core应用程序运行在ASP.NET Core 3.1.2上 在寻找软件包更新时,我意识到,许多Microsoft软件包(例如Microsoft.Extensions.Caching.Memory、Microsoft.Extensions.Configuration.Abstracts等)已从3.1.2(我构建应用程序时提供的最新版本)更新到3.1.5。此外,最新的.NET核心SDK和运行时已更新为3.1.5 这是巧合还是.NET核心SDK/运行时和NuGet包版本之

我目前有一个ASP.NET Core应用程序运行在ASP.NET Core 3.1.2上

在寻找软件包更新时,我意识到,许多Microsoft软件包(例如Microsoft.Extensions.Caching.Memory、Microsoft.Extensions.Configuration.Abstracts等)已从3.1.2(我构建应用程序时提供的最新版本)更新到3.1.5。此外,最新的.NET核心SDK和运行时已更新为3.1.5

这是巧合还是.NET核心SDK/运行时和NuGet包版本之间存在任何连接

我还可以在不更新服务器上的.NET核心运行时的情况下将NuGet软件包更新到3.1.5吗

谢谢,
Jens

通常,它们不必匹配,除非某些反射需要某些程序集的某个精确版本(通常发生在ASP.NET核心上)


由于.NET Core platform和软件包的语义版本控制,第三个版本中的更新不能带来任何API更改,因此它们将始终无故障生成,并且对这些软件包的定期调用将正常工作。

为什么不检查软件包要求?它非常清楚地说明了最低支持版本。不。。。您只需查看列出的受支持框架。如果上面写的是NetCore 3.x或NetStandard 2.x。。。这很好。诚实的回答是:这取决于,也可能取决于很多事情,比如是否使用自包含的应用程序进行部署,而不是依赖于要部署到的机器上安装的.NET Core版本。通常,.NET Core SDK版本附带内置特定ASP.NET Core版本,并且您的NuGet包引用不应大于该版本。否则,部署时可能会出现运行时故障,因为应用程序将假定它的目标是SDK附带的框架,因此,如果它不在SDK中,它将崩溃。@Gusman-根据依赖关系,packges可以与.Net Core 3.1配合使用(未说明补丁版本)。一些评论说,补丁版本应该匹配以避免潜在问题。因此,不确定是否只考虑需求/依赖性是正确的做法。