web-dev-qa-db-fra.com

Erreur dans le noyau C # de dotnet VS Code: "Le type ou le nom d'espace de nommage" Système "est introuvable", mais la construction réussit

Lorsque j'essaie de travailler avec Visual Studio Code sur une application MVC C # DotNet Core, j'ai beaucoup de mal à faire fonctionner le code Visual Studio. Il a du mal à trouver quoi que ce soit lié à C #, marquant même 'Utilisation du système;' comme invalide, en disant qu'il ne peut pas le trouver.

Cependant, lorsque j'exécute la génération dotnet, il réussit sans avertissement ni erreur et le projet s'exécute.

Mon project.json:

 {
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0",
    "Microsoft.EntityFrameworkCore.Design": {
      "version": "1.1.0",
      "type": "build"
    },
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

Des idées? J'arrache vraiment mes cheveux avec celui-ci.

32
MStudley

Parfois, C # pour Visual Studio Code (optimisé par OmniSharp) devient confus.

Essayez de redémarrer OmniSharp. Voici deux façons:

  1. Fermez et rouvrez Visual Studio Code, ou
  2. Ouvrez la palette de commandes et tapez Restart Omnisharp.

OmniSharp a tendance à devenir confus si nous restaurons les dépendances à partir de la ligne de commande plutôt qu'à partir de Visual Studio Code.

93
Shaun Luttin

Ok, j'ai trouvé la cause du problème. Je faisais référence à des importations incorrectes pour la partie framework du fichier project.json.

Cette:

"frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }

Devrait être ceci:

"frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  } 

Je suis sur une machine Windows 8, et pour une raison quelconque, "dnxcore50" n'est pas valide, mais "dotnet5.6" et "portable-net45 + win8" le sont. Je vais continuer à regarder pourquoi pour cette question, mais je poste cette réponse maintenant au cas où quelqu'un d'autre serait confronté à ce problème.

1
MStudley

Une autre cause possible d’obtention d’erreurs concernant "l’utilisation du système" est le stockage du .vscode répertoire dans le référentiel git (je ne l'ajoute pas à .gitignore).

L'ouverture du dossier de solution avec VSCode peut créer des problèmes de version croisée comme ci-dessus et peut être résolu simplement en supprimant le .vscode répertoire.

0
esj51

Dans VS2019, nettoyez et reconstruisez votre solution .. a fonctionné pour moi. Facile.

Sous l'onglet Build ...

0
Allstar