我正在迁移到MVC Core 3.1,谢天谢地,在我不得不迁移RCL之前,这并没有那么难。
在RCL中,我包括一些常见的控制器,为了使用Controller
基类和IActionResult
类型,我使用了NugetMicrosoft.AspNetCore.Mvc.Abstraction
,但它仅适用于.net Core 2.2。
为什么我在Nuget存储库中找不到更新的3.1版本?
当我导航到IActionResult
的定义时,我会看到一个版本为3.1.0的文件,所以我认为应该有一种方法来引用它,而不是2.2。
该项目基于NetStandard2.0
,我手动将其更改为netcoreapp3.1
,并添加对Microsoft.AspNetCore.App
的引用。
<FrameworkReference Include="Microsoft.AspNetCore.App" />
能够在3.1 上使用Controllers
和MVC框架的任何其他功能
- 创建RCL项目
- 编辑
.csProj
文件并进行适当的更改,使其看起来像:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Components" Version="3.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
</ItemGroup>
</Project>