如何轻松地从ASP.NET Core 2.1迁移到2.2?

102*_*074 11 asp.net-core-mvc asp.net-core asp.net-core-2.1

我有一个由asp.net core 2.1制作的项目,现在我想迁移到2.2版本.

我安装了2.2的SDK,并在项目的属性中将目标框架更改为2.2.

在我清理并重建解决方案之后,这里有一些警告,我无法清理它:
1. 在此输入图像描述

2. 在此输入图像描述

3. 在此输入图像描述

我找到了一个由Microsoft提供的关于此的教程:https: //docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=visual-studio

我试过但是仍然没有工作.

我认为通过更改项目属性中的目标框架,更新新版SDK就像.net框架一样.但是,似乎没有.

我想知道是否有一个官方工具可以将.net核心SDK从2.1更新到2.2.或者我最好创建一个全新的2.2项目,并将所有文件粘贴到其中,而不是修复麻烦的警告.

谢谢.

mer*_*zda 15

好的,所以我找到了一个比更新整个项目更简单的解决方案。我所做的是

确保我的项目文件中存在这两行。

 <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <RuntimeFrameworkVersion>2.2.0</RuntimeFrameworkVersion>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

然后我出现错误,说某些软件包不兼容,所以我也更改了它们的版本。特别是那两个:

 <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="2.2.0" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

之后,一切都成功编译,没有警告。

  • 您还需要将“ Startup.ConfigureServices”中的兼容性版本更新为Version_2_2:`services.AddMvc()。SetCompatibilityVersion(CompatibilityVersion.Version_2_2);`。另外,要为IIS使用更快的进程内托管模型,请在&lt;TargetFramework&gt; netcoreapp2.2 &lt;/ TargetFramework&gt;之后在您的.csproj文件中添加&lt;AspNetCoreHostingModel&gt; InProcess &lt;/ AspNetCoreHostingModel&gt;。 (8认同)

102*_*074 5

最后,我使用了最愚蠢的方法,创建了一个全新的空 .net core 2.2 项目并将大部分旧项目文件(包括模型/控制器/视图/样式表/javascript,但除了 csproj/Properties)粘贴到它。

然后清除解决方案并重建,所有警告都清除。

这种方式非常粗鲁和不专业,但也许是最简单的方式。