web-dev-qa-db-fra.com

Le type ou le nom d'espace de noms 'Hébergement' n'existe pas dans l'espace de noms 'Microsoft.AspNetCore.Razor'

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?)

enter image description here

J'ai fait mes recherches et j'ai essayé les choses suivantes en vain:

  • dotnet restore Dans la console du gestionnaire de packages
  • Suppression de mes dossiers bin et obj
  • Ouvrir _ViewImports.cshtml Et ajouter un @using Pour tous les espaces de noms de ma solution

Si 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();
        }
    }
}
15
Tyler Roper

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.

30
Tyler Roper

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:

enter image description here

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.

6