web-dev-qa-db-fra.com

Re-ciblage des nugets après la mise à niveau de .Net Framework 4.5 à 4.6.1

J'ai une solution .net avec environ 30 projets, tous ciblés sur .Net Framework 4.5. et chaque référence à au moins 3 ou 4 paquets NuGet.

Nous devons maintenant les mettre à jour vers .Net Framework 4.6.1. Alors voici ce que j'ai besoin de savoir:

  1. Dois-je également cibler à nouveau les packages NuGet ou puis-je ignorer cette étape, puisqu'il s'agira d'une mise à niveau "sur place"?
  2. Si oui, puis-je simplement mettre à jour le fichier packages.config pour chaque projet en remplaçant targetFramework = "net45" par targetFramework = "net461" pour chaque paquet NuGet? J'ai vu quelques discussions recommandant de désinstaller puis de réinstaller le paquet via la commande 'update-package'. J'ai essayé ça aujourd'hui mais j'ai fini avec quelques erreurs.
103
Vishal

Les paquets ne seront pas reciblés automatiquement, mais il existe un correctif automatisé pour cela.

Dans Package Manager Console, exécutez simplement:

Update-Package -Reinstall

Cela obligera le gestionnaire de paquets à réinstaller chaque paquet dans chaque projet (sans changer la version du paquet référencé).

En réinstallant les packages après avoir ciblé le nouveau framework, toutes les références à la version correcte sont modifiées.

Vous pouvez également exécuter ceci sur un seul projet avec:

Update-Package -Reinstall -ProjectName Project.Name.Here

J'ai souvent utilisé cette technique pour résoudre des problèmes de référence de nuget.

183
Ken Hundley

1 Trouver tous les fichiers .csproj et remplacer

<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

avec

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

2 Ouvrez la console du gestionnaire de package et exécutez-la.

Update-Package -Reinstall -IgnoreDependencies

3 Recherchez toutes les solutions, puis construisez-les.

27
OzBob

Fixé en utilisant -

Package de mise à jour -reinstall

enter image description here

2
Deep