web-dev-qa-db-fra.com

Impossible d'exécuter l'application .NET Core 2.1 (.1) sur Windows Server 2016

J'essaie d'exécuter une application .NET Core sur mon instance Windows Server 2016. Il se construit/fonctionne correctement sur ma machine Windows 10.

Je fais d'abord dotnet publish et je copie le site publié sur l'instance de Windows Server. J'ai suivi ce guide et installé à la fois le pack d'hébergement ainsi que le dernier SDK (2.1.3).

Cependant, quand j'essaie de dotnet myapp.dll Je reçois le message d'erreur suivant:

It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.All', version '2.1.1' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.Microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]

Je peux voir clairement qu'en effet Microsoft.AspNetCore.All n'a qu'un 2.1.0 version située dans Program Files\dotnet\shared. Comment obtenir le bon 2.1.1 version?

Tout conseil est très apprécié.

12
Ropstah
11
Jourmand

Il semble qu'il y ait eu un problème avec la publication du package Microsoft.AspNetCore.All, et il n'est pas configuré pour s'installer automatiquement avec l'installation de VS update/Core SDK. Au moins pas pour moi. Le package nuget a également été ajouté il y a seulement 10 heures avec 0 téléchargements. Donc, par défaut, nous sommes toujours bloqués avec 2.1.0. Pour résoudre ce problème, la première chose que j'ai faite a été de vérifier ce que les modèles d'application Web ASP.NET utilisent (ils changent constamment les valeurs par défaut, donc si vous avez un ancien projet que vous mettez à jour, il est toujours pratique de vérifier les modifications dans les modèles par défaut aussi ).

Le correctif pour moi supprimait le paramètre Version de la balise dans le fichier .csproj, comme cela se fait maintenant dans le modèle par défaut. Original:

<ItemGroup>
   <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.1" />
</ItemGroup>

Après modification:

<ItemGroup>
   <PackageReference Include="Microsoft.AspNetCore.All" />
</ItemGroup>

Cela résoudra essentiellement la dernière version installée, c'est-à-dire 2.1.0 pour l'instant. La version 2.1.1 sera probablement installée dans les mises à jour ultérieures. Vous pouvez également essayer d'installer le dernier package manuellement, mais je recommande de recourir aux paramètres par défaut lorsque cela est possible. De cette façon, il est moins probable que les futures mises à jour cassent mon système.

4
Wibin

Vous avez deux options:

  1. Installez le framework 2.1.1 sur le serveur (comme mentionné dans une autre réponse)

  2. Publiez votre application avec tous les actifs requis. Vous pouvez le faire avec la commande suivante:

    dotnet publish --self-contained
    
2
DavidG