Тип или имя пространства имен "Хостинг" не существует в пространстве имен "Microsoft.AspNetCore.Razor"

Я создал проект, используя Visual Studio.NET Core 2.1 SDK + шаблон React.

Я столкнулся со следующей ошибкой при запуске проекта:

Одна или несколько ссылок на компиляцию отсутствуют. Убедитесь, что ваш проект ссылается на "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();
        }
    }
}

Ответ 1

Вскоре после публикации этого вопроса я решил проблему.

Я обновил свой проект до.NET Core 2.1, но одна из ссылок (Microsoft.AspNetCore.All) была версией 2.0.8.

После обновления до 2.1.0 проект теперь работает так, как ожидалось.

Ответ 2

Я следую этому руководству, чтобы начать работу с .net Core:

Начало работы с EF Core на ASP.NET Core с новой базой данных

Они используют .net core 2, поэтому я запустил свой проект в core 2. Ранее я установил ядро 2.1. Когда я создал контроллер в соответствии с руководством, я получил эту ошибку. Отсюда я нашел решение, которое решило мою проблему:

enter image description here

В консоли диспетчера пакетов Visual Studio я запускал следующие три команды:

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

Затем я снова попытался восстановить новый контроллер. Это решило проблему. Работает отлично.