web-dev-qa-db-ja.com

ApiControllerが.NET Core WebApiプロジェクトに見つかりません

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() {

        }
    }
}

Syntax highlighting shows ApiController not found

ビルドエラー:

エラーCS0246:型または名前空間名「ApiControllerAttribute」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

Microsoft.AspNetCore.Mvc Assemblyにも含まれるRoute属性は、エラーなしで正しく解決されます。だから、私はアセンブリが存在することを知っています。

MSドキュメントごとに、属性はこのアセンブリで定義されます。

MS Docs for ApiControllerAttribute

3時間の検索の後、私はこれを理解することができませんでした。 .NET Coreは初めてですが、.NETは初めてではありません。

この問題を解決する方法はありますか?ありがとう。

6
realmikep

私はついにこれを理解しました。 .csprojファイルは、TargetFrameworkおよびPackageReferenceの正しいバージョンを指していませんでした。彼らは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>
5
realmikep