命名空间“Microsoft.AspNetCore.Razor”中不存在类型或命名空间名称“Hosting”
Posted
技术标签:
【中文标题】命名空间“Microsoft.AspNetCore.Razor”中不存在类型或命名空间名称“Hosting”【英文标题】:The type or namespace name 'Hosting' does not exist in the namespace 'Microsoft.AspNetCore.Razor' 【发布时间】:2018-11-22 07:52:22 【问题描述】:我使用 Visual Studio .NET Core 2.1 SDK + React 模板创建了一个项目。
我在运行项目时遇到以下错误:
缺少一个或多个编译参考。确保您的项目引用了“Microsoft.NET.Sdk.Web”并且“PreserveCompilationContext”属性未设置为 false。
命名空间中不存在类型或命名空间名称“Hosting” 'Microsoft.AspNetCore.Razor'(您是否缺少程序集引用?)
我已经做了我可以做的研究,但尝试了以下方法无济于事:
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
后,该项目现在可以按预期运行。
【讨论】:
谢谢!我做了类似的事情。我将“Microsoft.AspNetCore.All”从 2.0.8 升级到 2.0.9,但没有警告我必须以 Core 2.1 为目标。 必须将 Microsoft.AspNetCore 和 Microsoft.AspNetCore.MVC 都更新到 2.1,然后它对我有用。 请注意,2.1 之后的推荐方法是不在元包Microsoft.AspNetCore.All
上设置版本,而是根据您在<TargetFramework>netcoreapp2.1</TargetFramework>
中指定的内容推断.在这里阅读更多:docs.microsoft.com/en-us/aspnet/core/fundamentals/…【参考方案2】:
我正在按照本教程开始使用 .net Core:
Getting Started with EF Core on ASP.NET Core with a New database
他们使用 .net core 2,所以我在 core 2 中开始了我的项目。之前,我安装了 core 2.1。当我根据教程搭建一个控制器时,我得到了这个错误。我从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
然后我再次尝试搭建一个新的控制器。这解决了问题。工作正常。
【讨论】:
老兄。它帮助到我。谢谢 谢谢,谢谢,谢谢【参考方案3】:如果您使用的是 .Net Core 3.0 或更高版本, 将此添加到您的托管项目中的 startup.cs: services.AddRazorPages();
【讨论】:
以上是关于命名空间“Microsoft.AspNetCore.Razor”中不存在类型或命名空间名称“Hosting”的主要内容,如果未能解决你的问题,请参考以下文章
IFormFile 未从程序集“Microsoft.AspNetCore.Http 3.0”加载类型 Microsoft.AspNetCore.Http.Internal.FormFile'
Microsoft.AspNetCore.SpaServices.Extensions 的文档在哪里?
NETSDK1073:无法识别 FrameworkReference 'Microsoft.AspNetCore.App'