【问题标题】:ApiController not found in .NET Core WebApi project在 .NET Core WebApi 项目中找不到 ApiController
【发布时间】:2018-07-25 14:32:08
【问题描述】:

我在 Visual Studio Code 中创建了一个新的 .NET Core WebAPI 项目。所有依赖项都已恢复。该项目使用以下 SDK 和运行时:

  • .NET Core SDK 2.1.302
  • Microsoft.AspNetCore.All 2.1.2
  • Microsoft.AspNetCore.App 2.1.2
  • Microsoft.NETCore.App 2.1.2

我的控制器类(包括 Intellisense 视图的屏幕截图):

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;

namespace Gmn.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class MyController : ControllerBase
    {
        public MyController() {

        }
    }
}

构建错误:

错误 CS0246:类型或命名空间名称“ApiControllerAttribute” 找不到(您是否缺少 using 指令或程序集 参考?)

Route 属性也位于 Microsoft.AspNetCore.Mvc 程序集中,可以正确解析,没有错误。所以,我知道程序集存在。

根据 MS Docs,该属性在此程序集中定义:

经过 3 小时的搜索,我无法弄清楚这一点。我是 .NET Core 的新手,但不是 .NET。

有什么建议可以解决这个问题吗?谢谢。

【问题讨论】:

标签: c# visual-studio-code asp.net-web-api2 asp.net-core-2.0


【解决方案1】:

我终于想通了。 .csproj 文件未指向 TargetFrameworkPackageReference 的正确版本。他们指向 2.0 版本。 2.0 甚至没有安装,但没有错误。 (来自 Visual Studio,我已经习惯了为我做的所有魔法!)

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

...

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.2" />
  </ItemGroup>

...

</Project>

【讨论】:

  • 经过数小时的搜索,您的答案终于对我有用。
【解决方案2】:

你添加了这个: 服务.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

在你的创业课上?

【讨论】:

  • 这不会改变编译器的工作方式。这显然是一个编译器错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 2020-06-05
  • 2022-01-16
  • 2020-10-14
  • 2017-11-07
  • 1970-01-01
相关资源
最近更新 更多