我使用Visual Studio .NET Core 2.1 SDK + React Template 创建了一个项目。
运行项目时遇到以下错误:
缺少一个或多个编译引用。确保您的项目引用了“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();
}
}
}
答案 0 :(得分:28)
发布后不久,我就解决了这个问题。
我已将项目升级到.NET Core 2.1,但其中一个引用(Microsoft.AspNetCore.All
)是版本2.0.8
。
将此更新为2.1.0
后,项目现在可以正常运行。
答案 1 :(得分:6)
我正在按照本教程开始使用.net Core:
Getting Started with EF Core on ASP.NET Core with a New database
他们使用.net核心2,因此我在核心2中启动了我的项目。以前,我安装了核心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
然后我尝试再次搭建一个新控制器。这样就解决了问题。效果很好。
答案 2 :(得分:2)
如果您使用 .Net Core 3.0 或更高版本, 将此添加到您的托管项目中的 startup.cs : services.AddRazorPages();