2016-07-19 19 views
0

Es gibt viele ähnliche Fragen zu SO, aber ich konnte keine Lösung für mein Problem finden. Es ist offensichtlich, ich bin nicht vertraut genug mit .NET-Core noch ...)Kann Kestrel mit "dnx web" nicht starten, sagt "aktuelles Laufzeit-Zielframework ist nicht kompatibel"

ich einen strengen ASP.NET Core-App habe, und ich versuche, den Kestrel Web-Server mit dem dnx Web zu starten Befehl, aber es schlägt fehl, weil es scheint, das aktive Framework-Ziel ist dnx451 (anstelle von dnxcore50).

Mein global.json wie folgt aussieht:

{ 
    "projects": [ "FolderName", "src", "test" ], // What IS the actual project name? 

    "sdk": { 
    "version": "1.0.0-rc1-update2", 
    "runtime": "coreclr", 
    "architecture": "x86" 
    } 
} 

Auszüge aus project.json:

"commands": { 
     "web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://*:8000/" 
    }, 

    "frameworks": { 
    "dnxcore50": { } 
    } 

Alle schließlich in launchSettings.json:

{ 
    "profiles": { 
    "web": { 
     "commandName": "web", 
     "launchBrowser": false, 
     "launchUrl": "http://localhost:8000", 
     "environmentVariables": { 
     "Hosting:Environment": "Development" 
     }, 
     "sdkVersion": "dnx-coreclr-win-x86.1.0.0-rc1-update2" 
    } 
    } 
} 

Soweit ich sehen kann, die Abhängigkeiten in project.json Spiel der SDK-Version:

"dependencies": { 
    "EntityFramework.Commands": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
    "Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1", 
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final", 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", 
    "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.CodeGenerators.Mvc": "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", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final" 
    } 

Allerdings, wenn ich dnx Web laufen bekomme ich folgendes:

System.InvalidOperationException: The current runtime target framework is not compatible with 'Okaymaker.Web'. 
Current runtime target framework: 'DNX,Version=v4.5.1 (dnx451)' 
Version:  1.0.0-rc1-16609 
Type:   Clr 
Architecture: x86 
OS Name:  Windows 
OS Version: 10.0 
Runtime Id: win10-x86 

Please make sure the runtime matches a framework specified in project.json 

Nicht sicher, warum es das aktuelle Zielframework ist dnx451? Ich denke, ich kann dnx verwenden vor dem Ausführen dnx web ausführen, aber ich war unter dem Eindruck, dass die Konfiguration sollte die Einstellungen für mich behandeln?

Hier ist, was ich sehe, wenn ich dnvm Liste laufen:

Active Version   Runtime Architecture Location       Alias 
------ -------   ------- ------------ --------       ----- 
     1.0.0-beta8  clr  x64   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-beta8  clr  x86   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-beta8  coreclr x64   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-beta8  coreclr x86   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-rc1-update1 clr  x64   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-rc1-update1 clr  x86   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-rc1-update1 coreclr x64   C:\Users\TedNyberg\.dnx\runtimes 
     1.0.0-rc1-update1 coreclr x86   C:\Users\TedNyberg\.dnx\runtimes 
    * 1.0.0-rc1-update2 clr  x86   C:\Users\TedNyberg\.dnx\runtimes default 
     1.0.0-rc1-update2 coreclr x86   C:\Users\TedNyberg\.dnx\runtimes 

Edit: scheint diese Probleme gelöst werden können/vermieden, indem Visual Studio 2015 Update 3und die aktualisierte Installation Werkzeuge für .NET Core, beide erhältlich unter: https://www.microsoft.com/net/core#windows

+3

Paar Punkte, zuerst, warum nicht auf RTM statt RC1 aktualisieren? Du hast hier nicht einmal RC2. Es scheint überflüssig zu sein, mit der Beta-Software zu bleiben, wenn das echte Zeug da draußen ist. Zweitens wird "dnx" nicht mehr verwendet, Sie sollten 'dotnet' verwenden. – DavidG

+0

Danke @DavidG! Ich lief 'dnvm upgrade', aber es lädt nur den RC herunter ... Ich fühle mich gerade auf dünnem Eis.:) Ich werde mit der Installation von VS 2015 ** Update 3 ** beginnen, habe gerade festgestellt, dass ich es noch nicht getan habe. –

+1

Nicht sicher, ob Sie mit der Befehlszeile aktualisieren können. Sicherer Upgrade von Visual Studio auf Update 3 und Installation über dort. – DavidG

Antwort

0

Sie müssenverwenden, um die aktuelle Laufzeit auf corelclr zu setzen. VisualStudio war nicht intelligent genug, aber die veröffentlichten Skripte waren so intelligent, dass sie ein Shell-Skript erstellten, um statisch die richtige Engine auszuwählen.

Dies war ein bestätigter Designfehler von RC1 (Entschuldigung dafür, zu faul zu sein, die Video Notizen von der ASP.NET Community Standup zu suchen) und wurde als Teil der dotnet Befehlszeilenschnittstelle behoben.