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.
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.
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.
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.