Lorsque j'essaie de publier mon application sur le serveur Web après la mise à niveau vers .NET Core 2.1 à partir de la version 2.0, le message suivant s'affiche: "Cette version de Microsoft.AspNetCore.All est uniquement compatible avec le framework cible netcoreapp2.1. Veuillez cibler netcoreapp2. 1 ou choisissez une version de Microsoft.AspNetCore.All compatible avec netcoreapp2.0. "
Cela fonctionne bien sur ma machine de développement.
Voici mon dossier de projet:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
</Project>
J'ai vu ceci , mais cela ne semble pas être le problème. J'ai également expérimenté la version 2.1 de la version préliminaire de CodeGeneration.Tools, mais je n'ai pas pu l'installer.
EDIT: J'ai installé Dotnet 2.1 sur le serveur.
Voici ce que je vois sur le serveur:
D:\>dotnet --info
Host (useful for support):
Version: 2.1.0
Commit: caa7b7e2ba
.NET Core SDKs installed:
No SDKs were found.
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.5 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
J'ai eu le même problème, mais je n'avais pas mis à jour le fichier de profil de publication (.pubxml) pour le bon environnement cible
< TargetFramework>netcoreapp2.1< /TargetFramework>
Et en ce qui concerne plus tôt répondre à la ligne
< DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
Afficher être supprimé dans la version 2.1 en raison de son obsolète et sont inclus aujourd'hui
Pour faire suite au message de joakimja, vous pouvez également mettre à jour le fichier .pubxml via l'EDI VS2017. Faites un clic droit sur votre projet et sélectionnez "Publier" puis cliquez sur "Configurer" dans la rangée "Informations de dépannage", puis allez sur l'onglet "Paramètres". Vous pouvez définir ici le "Cadre cible". En fait, cela aurait dû automatiquement mis à jour "netcoreapp2.1" simplement en ouvrant la boîte de dialogue. Cliquez sur "Enregistrer" pour mettre à jour le cadre cible dans le fichier pubxml. Ensuite, essayez de publier à nouveau.
Je suis resté coincé avec ce problème pendant environ 3 heures. Finalement, cette erreur s'est produite lorsque j'ai ajouté un paquet Nuget Microsoft.VisualStudio.Web.CodeGeneration.Design
. Voici ce que j'ai fait pour résoudre ce problème:
1) Supprimé le dossier bin de mon projet principal .net
2) A ajouté explicitement la version de dotnet à TargetFramework et à PackageReference à 2.1.0 . Vous pouvez essayer d’ajouter ce qui convient le mieux à votre projet et à la version de Dotnet.
3) J'ai restauré le projet avec dotnet restore
puis construit avec dotnet build
4) À la fin, mon problème a été résolu et je ne reçois plus cette erreur.
Ce qui m'a aidé, c'est simplement de supprimer le ou les fichiers .pubxml du dossier Propriétés> PublishProfiles, puis de recréer à nouveau le profil de publication.
J'ai rencontré le même problème (erreur) en essayant de déployer ma solution mise à niveau vers AWS Lambda en utilisant:
dotnet lambda deploy-serverless
Il s’est avéré que j’avais oublié de mettre à jour mon fichier aws-lambda-tools-defaults.json.
"framework" : "netcoreapp2.1",
Ajout pour les autres dans la même situation.
Je suppose que vous avez tiré toutes les mises à niveau 2.1.x, mais que vous avez initialement démarré votre projet en 2.0.x. Je viens de modifier le fichier cspoj en rétrogradant et en ajoutant:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include=
"Microsoft.AspNetCore.All" Version="2.0.3" />
<PackageReference Include=
"Microsoft.AspNetCore.Cors" Version="2.0.3" />
<PackageReference Include=
"Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.3" />
<PackageReference Include=
"Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />
<PackageReference Include=
"Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.4" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReferenceInclude=
"Microsoft.EntityFrameworkCore.Tools.DotNet"Version="2.0.3" />
<DotNetCliToolReferenceInclude=
"Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
</ItemGroup>
Je pense donc que vous manquez le groupe d'items <DotNetCliToolReferenceInclude=>
.
J'ai essayé la plupart des suggestions que j'ai pu trouver, mais ce qui a fini par résoudre le problème a été de supprimer le paquet Microsoft.AspNetCore.All à partir d'ici:
% userprofile% .nuget\packages\Microsoft.aspnetcore.all\2.1.5\build\netcoreapp2.1 \
La prochaine génération a restauré la version correcte.
Désolé pour la réponse tardive,
J'ai maintenant cette erreur et j'ai trouvé la solution.
Nous devons changer la version de TargetFramework
dans PublishProfiles
en netcoreapp2.2
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<SelfContained>false</SelfContained>
<_IsPortable>true</_IsPortable>