web-dev-qa-db-de.com

Der vordefinierte Typ 'System.Object' ist nicht definiert oder importiert .net 4.6

Ich verwende MVC 5 und .net 4.6, um eine Web-API zu erstellen, mit der sich auch meine mobile App verbinden kann.

Immer wenn ich das Projekt baue, bekomme ich hunderte von Fehlern, die mir sagen, dass ich Referenzen hinzufügen muss, die bereits vorhanden sind und dass buchstäblich jeder Typ in meinem Projekt "nicht existiert". Einige Beispiele für diese Fehler: (Die im Titel nicht eingeschlossen)

ErrorList

Was ich probiert habe:

  • Ein Verweis auf System.Runtime wurde über nuGet hinzugefügt. (Eine Empfehlung von diese Frage .)
  • Aspnetcore50 wurde aus den Frameworks in der Datei project.json entfernt. (Eine andere Empfehlung, diese Frage .)
  • VS2015 wird neu gestartet.
  • Den nuGet-Paketmanager durchgehen und jedes Paket in meinem Projekt auf den neuesten Stand bringen.
  • Sicherstellen, dass ich die Referenzen im Referenzknoten des Lösungs-Explorers sehen kann.

UPDATE: -Meine project.json-Datei sieht folgendermaßen aus. (Nach dem Ändern basierend auf Karls Antwort. Die Fehlerliste ist jetzt auf zehn reduziert, es sind jedoch immer noch dieselben Fehler wie zuvor.)

{
  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
  },
  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "System.Runtime": "4.0.20-beta-23019"
  },
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Data": "4.0.0.0",
        "System.Data.DataSetExtensions": "4.0.0.0",
        "System.Data.Linq": "4.0.0.0"
      }
    }
  },
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "version": "1.0.0-*",
  "webroot": "wwwroot"
}
31
KidCode

Ich schätze hier ein bisschen, aber es sieht verdächtig aus, dass Sie die üblichen System.Data.*-Sachen für dnx451 verwenden, aber nichts für dnxcore50 wettmachen müssen. Zielen Sie auch auf die Kernedition oder sind es nur Reste bei der Projekterstellung? Wenn Sie die Kernedition als Zielgruppe verwenden möchten und immer noch das alte System.Data.*-Material verwenden möchten, müssen Sie etwas von diesen Baugruppen so umbrechen.

#if DNX451
// Do some DNX451 specific stuff here
#endif

Und umgekehrt auch.

#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif

Wenn Sie jedoch nicht daran denken, dies zu unterstützen, würde ich einfach dnxcore50 aus der Liste der Frameworks entfernen und Ihre Fehler werden wahrscheinlich verschwinden.

2

Entfernen Sie bin und obj und erstellen Sie sie neu.

15
gneric

Ich führe den Befehl dotnet restore auf der Package Manager Console aus und das Problem wurde behoben.

4
Navid_pdp11

In meinem Fall hatte ich ein Projekt, das noch gegen eine Betaversion von dnx gebaut werden sollte. Durch die Änderung der Version in die Version, die ich in den anderen Projekten verwendete, wurde das Problem behoben.

3
Peter

Bei denselben Fehlern wird mein Projekt beim Öffnen in Visual Studio 2017 nicht kompiliert, sondern in Visual Studio 2015 (wenn beide Versionen von VS gleichzeitig installiert sind). :-O

0
ChocapicSz

Für mich ist das Problem aufgetreten, als ich meiner Lösung ein neues Projekt hinzugefügt habe. Ich habe die Lösung neu aufgebaut und die Fehler sind verschwunden. 

0
Sarah Wessel