2016-09-27 3 views
2

Wenn ich Visual Studio 2015 Update 3 verwenden, um eine neue ASP.NET Core MVC App zu erstellen, funktioniert es einwandfrei. Allerdings, wenn ich sagte, nehmen App und aktualisiert es Nuget Pakete zu ASP.NET Core 1.0.1, bekomme ich die Fehler folgenden bauen:ASP.NET Core 1.0.1 bricht Projekte

Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible cause 
1. The project has not been restored or restore failed - run `dotnet restore` 
2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section. 
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries. 

Ist das ein Fehler oder etwas Umwelt?

Nachtrag:

Das Protokoll von der Wiederherstellung sieht gut aus:

log : Restoring packages for <path to project>\project.json... 
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in E:\Software Projects\subq\src\SubQ.API\project.json... 
log : Lock file has not changed. Skipping lock file write. Path: <path to project>\project.lock.json 
log : <path to project>\project.json 
log : Restore completed in 6210ms. 

project.json wie folgt aussieht:

{ 
    "dependencies": { 
     "Microsoft.AspNetCore.Mvc": "1.0.1", 
     "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
     "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1", 
     "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
     "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
     "Microsoft.Extensions.Configuration.Json": "1.0.0", 
     "Microsoft.Extensions.Logging": "1.0.0", 
     "Microsoft.Extensions.Logging.Console": "1.0.0", 
     "Microsoft.Extensions.Logging.Debug": "1.0.0", 
     "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
     "Microsoft.NETCore.App": "1.0.1" 
    }, 

    "tools": { 
     "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
     "netcoreapp1.0": { 
      "imports": [ 
       "dotnet5.6", 
       "portable-net45+win8" 
      ], 
      "runtimes": { 
       "win10-x64": {} 
      } 
     } 
    }, 

    "buildOptions": { 
     "emitEntryPoint": true, 
     "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
     "configProperties": { 
      "System.GC.Server": true 
     } 
    }, 

    "publishOptions": { 
     "include": [ 
      "wwwroot", 
      "Views", 
      "Areas/**/Views", 
      "appsettings.json", 
      "web.config" 
     ] 
    }, 

    "scripts": { 
     "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

Die neueste SDK installiert ist.

+1

Haben Sie das .NET Core 1.0.1 SDK installiert? – Tseng

+0

Versuchen Sie auch, den Befehl 'dotnet restore' in dem Ordner auszuführen, in dem sich Ihre project.json befindet. – Ignas

+0

@Tseng: Ja, ich habe es bereits installiert. – kettch

Antwort

3

Ich denke, runtimes sollte außerhalb der frameworks Einstellung platziert werden. Ändern

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
      "dotnet5.6", 
      "portable-net45+win8" 
     ], 
     "runtimes": { 
      "win10-x64": {} 
     } 
    } 
}, 

zu

"frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
      "dotnet5.6", 
      "portable-net45+win8" 
     ] 
    } 
}, 
"runtimes": { 
    "win10-x64": {}, 
    "win81-x64": {} 
}, 

Ich musste auch win81-x64 hinzufügen, da ich unter Windows bin mit 8,1, und Compiler beschwerte sich darüber.

Lassen Sie mich wissen, ob das geklappt hat!

+0

Ok. Das ist das richtige Schema. Ich habe einige Verweise auf die Laufzeitobjekte gesehen, aber nie im Kontext der gesamten Datei. Das eine Mal, als ich es gesehen habe, war es unter Frameworks eingebettet. Vielleicht galt das für eine frühere Version. Trotzdem danke! – kettch

+1

@ketchch: Konsultieren Sie http://schemastore.org/json/ für verfügbare Schemas. Project.json sowie andere json-basierte Konfigurationen sind dort mit ihrem Schema aufgelistet. Die neueste project.json befindet sich hier: http://json.schemastore.org/project – Tseng

+0

@Tseng Coole Ressource. Vielen Dank! – kettch

5

Nach https://github.com/dotnet/core/issues/267: Bei der Aktualisierung des „Typ“ mit nuget: „Plattform“ entfernt wird, die effektiv die Projektänderungen zu allein stehen und damit das Erfordernis eines Runtimes Abschnitts zwingen würde.

Für mich manuell das Hinzufügen des "type": "Plattform" zu der Datei project.json das Problem behoben.

"dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.1", 
      "type": "platform" 
     }, 

Und auch acoording https://github.com/dotnet/core/issues/267: aktualisiert durch die NuGet UI ruft in das Projektsystem project.json zu aktualisieren, „type“: „Plattform“ wird während dieser Bearbeitung fallen gelassen. NuGet 3.5.0 RTM (noch nicht veröffentlicht) wird eine Problemumgehung für dieses Problem haben.

Verwandte Themen