J'ai créé un projet à l'aide du Visual Studio .NET Core 2.1 SDK + React Template.
J'ai rencontré l'erreur suivante lors de l'exécution du projet:
Une ou plusieurs références de compilation sont manquantes. Assurez-vous que votre projet fait référence à 'Microsoft.NET.Sdk.Web' et à la propriété 'PreserveCompilationContext' n'est pas définie sur false.
Le type ou le nom d'espace de noms 'Hébergement' n'existe pas dans l'espace de noms 'Microsoft.AspNetCore.Razor' (il manque une référence d'assembly?)
J'ai fait mes recherches et j'ai essayé les choses suivantes en vain:
dotnet restore
Dans la console du gestionnaire de packagesbin
et obj
_ViewImports.cshtml
Et ajouter un @using
Pour tous les espaces de noms de ma solutionSi je modifie la HomeController Index()
pour qu'elle ne renvoie pas la View()
à la place [HttpGet] public string Index() => "Hello World!";
, le texte est renvoyé sans erreur.
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();
}
}
}
Peu de temps après avoir posté ceci, j'ai résolu le problème.
J'avais mis mon projet à niveau vers .NET Core 2.1, mais l'une des références (Microsoft.AspNetCore.All
) était la version 2.0.8
.
Lors de la mise à jour à 2.1.0
, le projet fonctionne maintenant comme prévu.
Je suis ce tutoriel pour démarrer avec .net Core:
Initiation à EF Core sur ASP.NET Core avec une nouvelle base de données
Ils utilisent .net core 2, j'ai donc démarré mon projet dans le noyau 2. Auparavant, j'avais installé le noyau 2.1. Lorsque j'ai échafaudé un contrôleur conformément au tutoriel, j'ai eu cette erreur. J'ai trouvé de ici la solution ci-dessous qui a résolu mon problème:
Dans ma console du gestionnaire de paquets Visual Studio, j'ai exécuté les trois commandes suivantes:
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
Ensuite, j'ai de nouveau essayé d'échafauder un nouveau contrôleur. Cela a résolu le problème. Fonctionne bien.