命名空间"Microsoft.AspNetCore.Razor"中不存在类型或命名空间名称"Hosting"

Tyl*_*per 18 c# asp.net-mvc razor asp.net-core

试图教自己一些新工具,但我设法打破了我的项目.

解决方案大约一天,由两个项目组成.一个是应用程序(使用Visual Studio .NET Core 2.1 SDK + React Template创建),另一个是数据层(它只是一个dotnet restore文件夹).

数据层今天已经实施,而且当事情变得艰难时.我不想立即将手指指向那里,因为它可能发生在我同时做出的其他一些变化上.

缺少一个或多个编译引用.确保您的项目引用了"Microsoft.NET.Sdk.Web",并且"PreserveCompilationContext"属性未设置为false.

命名空间"Microsoft.AspNetCore.Razor"中不存在类型或命名空间名称"Hosting"(您是否缺少程序集引用?)

在此输入图像描述

我已经完成了公平的研究,无法解决这个问题.我试过了...

  • bin 在包管理器控制台中
  • 删除我obj_ViewImports.cshtml文件夹
  • 打开@using并加入HomeController Index()我的解决方案的每个命名空间

如果我修改View()from返回[HttpGet] public string Index() => "Hello World!";to dotnet restore,则返回文本而没有任何错误.


Index.cshtml

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

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

@section scripts {
    <script src="~/dist/main.js" asp-append-version="true"></script>
}
Run Code Online (Sandbox Code Playgroud)

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*per 33

发布后不久我就解决了这个问题.

我已将项目升级到.NET Core 2.1,但其中一个引用(Microsoft.AspNetCore.All)是版本2.0.8.

更新后2.1.0,项目现在按预期工作.


Moh*_*man 7

我正在下面的教程中开始使用.net Core.

使用新数据库在ASP.NET Core上开始使用EF Core

他们使用.net核心2.所以我在核心2开始了我的项目.之前我安装了核心2.1.当我根据教程搭建控制器时我得到了这个错误.我下面找到解决了我的问题的解决方案.

在此输入图像描述

所以在我的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
Run Code Online (Sandbox Code Playgroud)

然后我再次试图搭建一个新的控制器.这一次所有的问题都消失了.工作良好.