如何将AspNetCore从2.2.0更新到2.2.2

Mat*_*ias 5 .net-core asp.net-core asp.net-core-webapi

tldnr:如何Microsoft.AspNetCore.App从升级2.2.02.2.2?在包管理器用户界面中已禁用该功能。


当我创建一个testproject时,我意识到它Microsoft.AspNetCore.App是version 2.2.2(最新版本),而在我的主要Api项目中则是2.2.0

项目依赖项和SDK参考

由于以下原因,我无法更新它

SDK隐式引用。要更新程序包,请更新程序包所属的SDK

nuget manager阻止软件包更新到2.2.2

我确实安装了SDK 2.2.104,其中应包含2.2.2(我喜欢Microsoft的版本号非常直观)

C:\Users\matthias>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009472 [C:\Program Files\dotnet\sdk]
2.2.104 [C:\Program Files\dotnet\sdk]
Run Code Online (Sandbox Code Playgroud)

将所有内容更新为的正确方法是2.2.2什么?我可以在中设置该软件包的版本号csproj,而且看起来似乎还可以,但是我想这不是干净的方法。UI为什么会禁用它呢。

项目文件来自默认模板。

C:\Users\matthias>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009472 [C:\Program Files\dotnet\sdk]
2.2.104 [C:\Program Files\dotnet\sdk]
Run Code Online (Sandbox Code Playgroud)

资料来源:https : //github.com/matthiaslischka/netcore222updateissue

更新:

我现在已经RuntimeFrameworkVersion 2.2.2像建议的ESG一样添加到了csproj中,现在我得到了这个奇怪的观点:

Nuget Manager对于同一软件包显示不同版本

我用ILSpy检查了编译的DLL,它似乎仍然是2.2.0.0 ilspy显示版本2.2.0.0

And*_*rse 5

我发布此内容是为了回应 Andy 的 GitHub bug,但为了进一步扩大影响力,将其重新发布到此处:

如果您使用的是 .NET Core,则更新补丁所需要做的唯一事情就是在运行应用程序的计算机(即您的服务器、开发盒等)上安装最新的修补运行时。

.NET Core 应用程序会自动前滚到与您的目标主要/次要对关联的最高补丁版本。可以使用设置禁用此行为,[appname].runtimeconfig.json但我们强烈建议您保留它,以确保您始终在最新的运行时上运行(包含所有已发布的安全修复程序)。

虽然我们建议您运行最新的补丁,但我们建议您不要更新您的应用程序以定位更高的补丁版本,因为如果目标计算机上不存在该补丁,您的应用程序将无法启动。补丁不应引入您需要更新才能依赖的 API,因此无需更新包引用。