web-dev-qa-db-ja.com

タイプまたは名前空間名「ホスティング」が名前空間「Microsoft.AspNetCore.Razor」に存在しません

Visual Studio。NET Core 2.1 SDK + React Template)を使用してプロジェクトを作成しました。

プロジェクトを実行すると、次のエラーが発生します。

1つ以上のコンパイル参照がありません。プロジェクトが「Microsoft.NET.Sdk.Web」を参照しており、「PreserveCompilationContext」プロパティがfalseに設定されていないことを確認してください。

型または名前空間名「ホスティング」が名前空間「Microsoft.AspNetCore.Razor」に存在しません(アセンブリ参照がありませんか?)

enter image description here

私はどんな研究をすることができましたが、以下を試してみましたが役に立ちませんでした:

  • _dotnet restore_パッケージマネージャーコンソール
  • binおよびobjフォルダーを削除する
  • __ViewImports.cshtml_を開き、ソリューションのすべての名前空間に_@using_を追加します

HomeController Index()View()を返す代わりに[HttpGet] public string Index() => "Hello World!";に変更すると、テキストはエラーなしで返されます。


Index.cshtml

_@{
    ViewData["Title"] = "Home Page";
}

<div id="react-app">Loading...</div>

@section scripts {
    <script src="~/dist/main.js" asp-append-version="true"></script>
}
_

HomeController.cs

_using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;

namespace sample_project.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Error()
        {
            ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
            return View();
        }
    }
}
_
15
Tyler Roper

これを投稿して間もなく、私は問題を解決しました。

プロジェクトを.NET Core 2.1にアップグレードしましたが、参照の1つ(Microsoft.AspNetCore.All)はバージョン2.0.8でした。

これを2.1.0に更新すると、プロジェクトは期待どおりに動作するようになりました。

30
Tyler Roper

私は、このチュートリアルに従って.net Coreを開始します。

新しいデータベースを使用したASP.NET CoreでのEF Coreの開始

それらは.netコア2を使用するため、コア2でプロジェクトを開始しました。以前は、コア2.1をインストールしました。チュートリアルに従ってコントローラーをスキャフォールディングすると、このエラーが発生しました。私は here から私の問題を解決した以下の解決策を見つけました:

enter image description here

Visual Studioパッケージマネージャーコンソールで、次の3つのコマンドを実行しました。

Install-Package Microsoft.AspNetCore.All -Version 2.0.8
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.0.3
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.1

それから私は新しいコントローラーを再び足場に入れようとしました。これで問題は解決しました。正常に動作します。