Je suis sur le point d'essayer de me familiariser avec asp.net core/npm/react en utilisant ceci comme modèle de projet de base:
https://github.com/jonmcquade/aspnetcore-react-redux#local-no-docker
À l’origine, j’ai rencontré des problèmes lors de l’essai de cette commande:
dotnet build -c Release -o ./app
L'erreur que je voyais:
Une version de SDK compatible pour la version de global.json: [2.1.0] à partir de [Global.json] n'a pas été trouvée Voulez-vous exécuter les commandes du kit de développement dotnet? Veuillez installer le kit de développement dotnet à partir de:
http://go.Microsoft.com/fwlink/?LinkID=798306&clcid=0x409
J'avais les versions spécifiques dans la documentation installées et j'ai installé les dernières versions, les plates-formes x64 et x86.
Je reçois maintenant aussi cette erreur en exécutant la commande npm install
ou la commande dotnet --version
, mais des SDK sont installés.
On a l'impression que la configuration de la machine est en quelque sorte brisée. Il semble que je sois entré un peu dans le vif du sujet en essayant de faire fonctionner la commande dotnet build
et que même NPM ne fonctionne plus.
Global.json c'est:
{
"sdk": { "version": "2.1.0" }
}
Et le fichier .csproj contient:
<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>
Qu'est-ce qui me manque pour que cela fonctionne?
Puis-je vérifier certains problèmes de configuration de la machine? Peut-être que les variables d'environnement? J'ai essayé d'exécuter une réparation à l'aide des programmes d'installation, mais cela ne résout pas le problème.
Le global.json
spécifie la versionSDKde .NET Core utilisée pour créer votre application. Cela a peu à voir avec la version de .NET Core Runtime avec laquelle vous voulez exécuter votre application.
Votre application est un netcoreapp2.1
, vous exécutez donc le runtime .NET Core 2.1. La version la plus ancienne du SDK pour cela est 2.1.300
.
Comme il s’agit de la dernière version du .NET Core, vous n’avez en fait pas besoin du tout global.json
: supprimez simplement le fichier de votre projet et l’outillage doit utiliser la dernière version qui est 2.1.300-rc1
sur votre ordinateur.
Si vous rencontrez ce problème sous OSX, vous pouvez le résoudre comme suit:
which dotnet
ls
+ le résultat de la commande précédente
Vous devriez maintenant voir quelque chose comme: /usr/local/share/dotnet/dotnet
Le répertoire qui contient votre binaire dotnet
doit également avoir un répertoire appelé sdk
. Ainsi, pour l'exemple ci-dessus, vous pouvez exécuter ls /usr/local/share/dotnet/sdk
, qui devrait générer un répertoire avec votre numéro de version actuel. Dans mon cas, il s'agit de 2.1.403
(il existe peut-être un meilleur moyen d'obtenir le numéro de version, mais je n'ai pas pu exécuter dotnet --version
sans spécifier le bon sdk).
Si j'ouvre maintenant le fichier global.json
dans le répertoire racine de mon application et que je change la version sdk
en "2.1.403-osx-gs-x64"
, je devrais maintenant pouvoir exécuter la commande dotnet
telle que dotnet run
à partir de mon projet.