.NET 6类库中正确引用ActionResult类型的方法是什么?
正确引用ActionResult的方式(.NET 6类库)
在.NET 6及更高版本的ASP.NET Core生态中,ActionResult和IActionResult属于Microsoft.AspNetCore.App共享框架的一部分,无需安装单独的NuGet包,正确的做法如下:
- 确保你的类库项目目标框架设置为
net6.0(或对应版本的ASP.NET Core目标框架) - 在项目的
.csproj文件中添加对共享框架的引用,配置示例如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup> </Project>
关键说明:
- 不要安装
Microsoft.AspNet.Mvc包:这是针对.NET Framework的旧版MVC包,与.NET 6完全不兼容,会导致版本冲突警告。 - 无需使用已废弃的
Microsoft.AspNetCore.Mvc.Abstractions包:在.NET Core 3.0之后,MVC相关的抽象类型已整合到共享框架中,该包早已停止维护。 Microsoft.AspNetCore.App.Ref是内部引用包:仅用于SDK内部编译,不需要手动安装或引用,FrameworkReference会自动处理相关依赖。
IntelliSense偶尔会误推荐旧包,这是因为它未识别到项目可通过共享框架获取这些类型,添加上述FrameworkReference后,就能正常引用ActionResult和IActionResult了。
内容的提问来源于stack exchange,提问作者Dmitry Fedorkov
相关产品推荐
相关产品推荐

