wake-up-neo.com

npm kann keine SDK-Version von global.json finden

Ich bin gerade dabei, zu versuchen, sich mit asp.net core/npm/reag auf den neuesten Stand zu bringen, und zwar als Basisprojektvorlage:

https://github.com/jonmcquade/aspnetcore-react-redux#local-no-docker

Ich hatte ursprünglich Probleme, als ich einmal diesen Befehl ausprobierte:

dotnet build -c Veröffentlichung -o ./app

Der Fehler, den ich sah:

Eine kompatible SDK-Version für global.json-Version: [2.1.0] aus [Global.json] wurde nicht gefunden. Wollten Sie dotnet SDK-Befehle ausführen? Bitte installieren Sie dotnet SDK von:
http://go.Microsoft.com/fwlink/?LinkID=798306&clcid=0x409

Ich hatte die spezifischen Versionen in der Dokumentation installiert und die neuesten Versionen installiert, sowohl x64- als auch x86-Plattformen.

 enter image description here

Ich bekomme jetzt auch diesen Fehler beim Ausführen des Befehls npm install oder des Befehls dotnet --version, aber ich habe SDKs installiert.

Es scheint, als sei die Maschinenkonfiguration irgendwie kaputt gegangen. Ich scheine in eine Version von Pickle zu geraten zu sein, die versucht, den dotnet build-Befehl zum Laufen zu bringen, und jetzt funktioniert auch NPM nicht.

Global.json ist:

{
    "sdk": { "version": "2.1.0" }
}

Und die .csproj-Datei enthält:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.0-preview1-26216-03</RuntimeFrameworkVersion>
    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
    <IsPackable>false</IsPackable>
    <AssemblyName>FlightSearch</AssemblyName>
    <RootNamespace>FlightSearch</RootNamespace>
    <ApplicationIcon>ClientApp\favicon.ico</ApplicationIcon>
    <Authors>Jon McQuade</Authors>
    <Company>ACME Freelancing, Inc.</Company>
    <StartupObject></StartupObject>
    <Product>Flight Search</Product>
    <Description>ASP .NET Core 2.1 MVC SPA with React and Redux</Description>
    <RepositoryUrl>http://github.com/jonmcquade/aspnetcore-react-redux</RepositoryUrl>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <TypeScriptToolsVersion>2.8</TypeScriptToolsVersion>
    <OutputType>Exe</OutputType>
    <Version>2.1</Version>
  </PropertyGroup>

Was vermisse ich, um das zu erreichen?

Gibt es Probleme bei der Maschinenkonfiguration, die ich überprüfen kann? Vielleicht Umgebungsvariablen? Ich habe versucht, eine Reparatur mit den Installationsprogrammen auszuführen, aber das Problem ist nicht behoben.

4
Jammer

global.json gibt dieSDK- Version von .NET Core an, die zum Erstellen Ihrer Anwendung verwendet wird. Dies hat wenig mit der .NET Core Runtime-Version zu tun, mit der Sie Ihre Anwendung ausführen möchten.

Ihre Anwendung ist ein netcoreapp2.1, Sie führen also die .NET Core 2.1-Laufzeitumgebung aus. Die früheste SDK-Version dafür ist 2.1.300.

Da dies die neueste .NET Core-Version ist, müssen Sie eigentlich gar keinen global.json verwenden: Löschen Sie einfach die Datei aus Ihrem Projekt und das Tooling sollte die neueste Version verwenden, nämlich 2.1.300-rc1 auf Ihrem Computer.

5
poke

Wenn Sie unter OSX auf dieses Problem stoßen, können Sie das Problem folgendermaßen beheben:

which dotnet

ls + die Ausgabe des vorherigen Befehls

Sie sollten nun etwa Folgendes sehen: /usr/local/share/dotnet/dotnet

Das Verzeichnis, in dem sich Ihre dotnet-Binärdatei befindet, sollte auch ein Verzeichnis mit dem Namen sdk haben. In diesem Beispiel können Sie ls /usr/local/share/dotnet/sdk ausführen, das ein Verzeichnis mit Ihrer aktuellen Versionsnummer ausgeben soll. In meinem Fall ist dies 2.1.403 (möglicherweise gibt es einen besseren Weg, um die Versionsnummer abzurufen, aber ich konnte dotnet --version nicht ausführen, ohne die richtige SDK anzugeben.)

Wenn ich jetzt die global.json-Datei im Stammverzeichnis meiner App öffne und die sdk-Version in "2.1.403-osx-gs-x64" ändere, sollte ich jetzt in der Lage sein, dotnet-Befehl wie dotnet run in meinem Projekt auszuführen.

1
NM Pennypacker