140 votes

.net Core 2.0 - Le package a été restauré en utilisant .NetFramework 4.6.1 au lieu du framework cible .netCore 2.0. Le package peut ne pas être entièrement compatible

J'ai une application console .net core 2.0. Je suis en train de lire des fichiers depuis TFS en utilisant ce qui suit :

Comment obtenir un fichier depuis TFS directement en mémoire (c.-à-d., sans le lire depuis le système de fichiers en mémoire) ?

Je me rends sur NuGet et j'installe Microsoft.TeamFoundationServer.ExtendedClient et je rencontre ceci :

entrer la description de l'image ici

Le package 'Microsoft.AspNet.WebApi.Client 5.2.2' a été restauré en utilisant '.NETFramework,Version=v4.6.1' au lieu du framework cible du projet '.NETCoreApp,Version=v2.0'. Ce package peut ne pas être entièrement compatible avec votre projet.

Même après avoir supprimé l'avertissement, je continue de recevoir l'erreur et je ne peux pas référencer la bibliothèque. Comment puis-je résoudre cette référence ?

Très facile à reproduire :

  1. Nouvelle application console .net core 2.0
  2. Copiez la méthode de la question ci-dessus
  3. Essayez d'installer le package NuGet

13 votes

Le paquet nuget auquel vous faites référence n'est pas compatible avec .NET Standard (ou .NET Core), donc Visual Studio essaie d'utiliser le seul framework cible disponible (.NET 4.6.1), ce qui (comme mentionné) peut ne pas être compatible avec votre framework cible. Votre application devrait compiler même avec cet avertissement, mais il n'y a aucune garantie que cette bibliothèque fonctionnera dans .NET Core.

0 votes

@FedericoDipuma Je comprends cela, mais le projet ne se compile même pas et les références ne se résolvent pas malgré la suppression de l'avertissement.

2 votes

Vous pouvez essayer le package standard Client, qui est actuellement en prévisualisation mais est entièrement compatible avec .NET Standard 1.6 (et donc avec .NET Core 1.1+). Il n'est pas aussi complet que le client étendu mais il peut être suffisant pour vous. Je ne pense pas que vous ayez actuellement d'alternatives.

36voto

Andy Li-MSFT Points 18202

Le package n'est pas entièrement compatible avec dotnetcore 2.0 pour le moment.

Par exemple, pour 'Microsoft.AspNet.WebApi.Client', cela peut être pris en charge dans la version (5.2.4). Voir Consume new Microsoft.AspNet.WebApi.Client.5.2.4 package pour plus de détails.

Vous pourriez essayer le package Client standard comme l'a mentionné Federico.

Si cela ne fonctionne toujours pas, alors en tant que solution de contournement, vous pouvez seulement créer une application Console App (.Net Framework) au lieu de l'application console .net core 2.0.

Référence ce fil de discussion : Microsoft.AspNet.WebApi.Client pris en charge dans .NET Core ou non?

0 votes

J'ai rencontré un problème similaire avec "Microsoft.VisualStudio.Web.CodeGeneration.Design" et ".netcore 2.2", ma solution a été de trouver d'abord des versions plus récentes du package pour voir si elles résolvaient le problème, avant de chercher des versions plus anciennes jusqu'à ce que je trouve un package compatible. Dans mon cas, j'utilisais la version 3.1.0 et j'ai dû revenir à la première version de prévisualisation de cette version.

4voto

radpin Points 262

Pour moi, j'avais environ 6 packages Nuget différents à mettre à jour et lorsque j'ai d'abord sélectionné Microsoft.AspNetCore.All, j'ai obtenu l'erreur référencée.

J'ai commencé par le bas et mis à jour les autres d'abord (EF Core, EF Design Tools, etc.), puis quand le seul qui restait était Microsoft.AspNetCore.All, tout a bien fonctionné.

0 votes

En effet, le 14.06.2018 j'ai pu installer et configurer mon environnement pour la première fois, créer le projet, construire manuellement puis déboguer le code de base (avec juste un simple changement); le tout sans tenir compte de cet avertissement spécifique.

2voto

Ce package en particulier ne comprend pas les assemblys pour dotnet core, du moins pas pour le moment. Vous pourriez peut-être le construire pour core vous-même avec quelques ajustements au fichier du projet, mais je ne peux pas dire avec certitude sans plonger moi-même dans le code source.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X