如何将AspNetCore从2.2.0更新到2.2.2

时间:2019-02-23 14:42:22

标签: asp.net-core .net-core asp.net-core-webapi

tldnr:如何将Microsoft.AspNetCore.App2.2.0升级到2.2.2?在软件包管理器用户界面中已禁用它。


当我创建一个测试项目时,我意识到Microsoft.AspNetCore.App2.2.2版本(最新版本),而在我的主要Api项目中是2.2.0

projects dependencies and SDK references

由于

我无法更新它
  

由SDK隐式引用。要更新软件包,请更新SDK   它所属的

nuget manager blocking update of package to 2.2.2

我确实安装了SDK 2.2.104,其中should contain 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]

将所有内容更新为2.2.2的正确方法是什么?我可以在csproj中为软件包设置版本号,它似乎可以正常工作,但是我想这不是干净的方法。 UI为什么要禁用它呢?

项目文件来自默认模板。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

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

更新:

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

Nuget manager shows different versions for the same package

我已经用ILSpy检查了编译的DLL,它似乎仍然是2.2.0.0 ilspy show version 2.2.0.0

4 个答案:

答案 0 :(得分:2)

我发布此消息是为了回应Andy的GitHub错误,但将其重新发布到此处以进一步覆盖:

如果您使用的是.NET Core,则只需更新到补丁程序,便是在运行该应用程序的计算机(例如,服务器,开发箱等)上安装最新的补丁程序运行时。

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

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

答案 1 :(得分:1)

由于拥有2.2.2 .Net核心SDK,因此可以通过在RuntimeFrameworkVersion中指定csproj来强制ASP.Net的版本。

<PropertyGroup>
    <RuntimeFrameworkVersion>2.2.2</RuntimeFrameworkVersion>
</PropertyGroup>

答案 2 :(得分:0)

有人知道如何正确执行此操作吗?

我已向AspNetCore Github提交了一个问题。

这是该https://github.com/aspnet/AspNetCore/issues/10249

的链接

我认为这实际上是一个错误(VS错误或dotnet错误,我不知道)

让我们看看接下来会发生什么。

答案 3 :(得分:0)

我在2.2.8中遇到了类似的问题,安装了x86版本的SDK使其无法使用。似乎单元测试是32位进程?