Vordefinierte Typ " System.Void " ist nicht definiert oder importiert, während Visual Studio Online-build ASP.NET 5
Ich bekomme diese Fehlermeldung, wenn ich versuche, das Projekt in Visual Studio Online:
Frontend\src\Frontend\Startup.cs(65,49): Fehler CS0518: Vordefinierte Typ " System.Void " ist nicht definiert oder importiert
C:\a\1\s\Frontend\src\Frontend\Startup.cs(65,49): DNXCore,Version=v5.0 Fehler CS0518: Vordefinierte Typ " System.Void " ist nicht definiert oder importiert [C:\a\1\s\Frontend\src\Frontend\Frontend.xproj]
Es scheint, dass der Fehler passiert an der Stelle, wo ich mich auf eine andere Bibliothek (package class library).
P. S. ich hatte einige Gespräche über dies hier: Einfache Möglichkeit zum erstellen und bereitstellen (von Azure) ASP.NET 5 in Visual Studio Team Services, aber es kam keine Antwort, also kann ich immer noch nicht bauen...
Web-Projekt.json:
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
"Web.Common": "1.0.0-*"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
Bibliothek-Projekt.json
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
},
"dependencies": {
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final"
}
Update (problem und Lösung):
War das problem in der Tatsache, dass meine Bibliothek verwiesen wurde, nicht im gleichen Ordner und das script standardmäßig nicht ausgeführt dnu-Wiederherstellung es, so hatte ich einen level up und starten die Suche nach Projekt.json-rekursiv dort
$SourceRoot = Split-Path -Path $PSScriptRoot -Parent
# run DNU restore on all project.json files in the src folder including 2>1 to redirect stderr to stdout for badly behaved tools
Get-ChildItem -Path $SourceRoot -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }
Dank Eddie, MSFT für die Hilfe!
Wo sollte ich diese Abhängigkeit? Es ist nicht standardmäßig im Projekt.json web-Projekt und es besteht für coreclr, aber nicht für clr-in der Bibliothek. P. S. Alles baut lokal in VS durch die Art und Weise
Kannst du die "Abhängigkeiten" und "frameworks" Abschnitt im Projekt.json-Datei?
Ich habe es auf die post habe ich geändert, der Bibliothek Ziel-Rahmens entsprechen Internet ein, da der f# - Probleme (die es nicht finden, wie dieselbe auch sonst), aber ich habe versucht, es zu ändern zurück, und es hat auch nicht geholfen. Ich denke, es sollte ordnungsgemäß funktionieren mit diesen web-Ziele sowieso, wie Sie sind, nur restriktiver, soweit ich es verstanden habe.
InformationsquelleAutor Ilya Chernomordik | 2016-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nur reproduziert dieses Problem nach der Aktualisierung den code in "vor dem build.ps1" - Skript, um nur wiederherstellen " - Projekt.json" Datei für web-Projekt.
Original-Code (Build Success):
Aktualisierten Code (Build scheitern mit: der Vordefinierte Typ " System.Void " ist nicht definiert oder importiert):
So dass Sie brauchen, um zu überprüfen, die vor dem build.ps1-Skript und die build-Protokolle für die PowerShell Schritt zu prüfen, ob das Projekt.json-Dateien für Web-Projekt und Bibliothek-Projekt sind beide wiederhergestellt.
Dann überprüfen Sie die build-logs zu sehen, ob das Projekt.json-Datei für die Bibliothek-Projekt ist wiederhergestellt worden.
Lassen Sie mich überprüfen, kann es passieren, dass meine Projekt-Struktur bewirkt es? Ich habe ein Projekt in \Frontend, der andere (Bibliothek) ist nicht im gleichen Ordner sondern im Ordner \Common\Library
Ja. Standardmäßig wird das web-Projekt und Bibliothek-Projekt sind sowohl unter "src" - Ordner. So die Fertige.ps1-Skript kann wieder die Projekt.json für beide von Ihnen standardmäßig. Wenn das Bibliothek-Projekt gelegt, in anderen Ort, das Projekt.json-Datei nicht wiederhergestellt werden mit diesem Skript standardmäßig.
Ich denke, dass ist das problem... Die Anleitung, wie das zu tun, das nicht wirklich erwähnen diese details... ich habe es in einem gemeinsamen Ordner, da es eine Bibliothek, die gehen, um wieder verwendet werden, zwischen verschiedenen Lösungen, damit es nicht ganz richtig... In den logs habe ich, dass: "die Wiederherstellung Pakete für C:\a\1\s\Frontend\src\Frontend\project.json" aber nicht für die anderen, ich nehme an, ich werde das Skript ändern ein bisschen
InformationsquelleAutor Eddie Chen - MSFT
In mein eigenes Problem, ich baute die gesamte Lösung und der Fehler verschwand.
Um fair zu sein, ich habe das gleiche problem nur jetzt (einzige Unterschied ist, dass ich mit der desktop-edition von visual studio) und Wiederaufbau der gesamten Lösung in der Tat zu beheben den "Fehler". Dieser Vorschlag irgendwie tatsächlich Sinn machen... ich fürchte, das problem ist nur, bedingt durch einige Fehler VS hat mit der "Fehler-cache?"
Für mich arbeitete Sauber, neu erstellen, und klicken Sie dann Visual Studio neu starten
InformationsquelleAutor superninja
Ich bin das hinzufügen meiner eigenen Erfahrung mit diesem bug/Problem.
Form meinen Teil musste ich entfernen " - System.Xml.XDocument": "4.0.10" von Projekt.json um das problem zu beheben
InformationsquelleAutor Hugo