J'ai une solution dans Visual Studio 2012 avec 170 projets C #. J'ai besoin de recibler tous les projets de .NET Framework 4.0 à 4.5.2.
Je préfère laisser Visual Studio gérer cela en accédant aux propriétés de chaque projet, en modifiant le framework ciblé et en laissant Visual Studio apporter les modifications nécessaires aux fichiers .csproj.
J'ai remarqué que ces changements incluent l'ajout de quelques nouvelles balises XML au .csproj, en fonction de certains attributs du projet actuel.
Comment puis-je recibler par lots les 170 projets C # sans simplement utiliser un outil de remplacement de texte pour remplacer le numéro de version ciblé? Je veux que Visual Studio effectue toutes les modifications et ajouts de balises nécessaires et que le remplacement seul ne permettra pas que cela se produise.
Réponses:
La documentation MSDN « Guide de migration vers .NET Framework 4.5 » et « Comment configurer une application pour prendre en charge .NET Framework 4 ou 4.5 » traite uniquement de la modification de projets. Il n'y a pas de détails sur l'application des modifications à l'ensemble de la solution à la fois, et je n'ai pas non plus vu de fonction dans VS qui le prend en charge.
Cependant, il existe une extension (bien notée) appelée Target Framework Migrator disponible dans la galerie Visual Studio, qui prend en charge la mise à niveau vers la 4.5.2 (ainsi que les versions plus récentes **) et semble faire exactement ce que vous voulez. Le code source est disponible sur GitHub , si cela vous intéresse.
Notez que l'absence d'une telle fonctionnalité peut être intentionnelle (et pas seulement une omission). Je ne fais que deviner, mais peut-être que MS pense que seuls les projets qui ont besoin des nouveaux Frameworks seront mis à niveau. FWIW, si vous finissez par mettre à niveau certains projets partagés avec d'autres solutions, ces solutions peuvent échouer jusqu'à ce qu'elles soient également mises à niveau.
Cela étant dit, si vous êtes dans un petit magasin avec une seule (ou quelques) solutions et que vous cherchez à tout mettre à niveau en une seule fois, alors peut-être que l'outil ci-dessus fonctionnera pour vous.
Si vous ne parvenez pas à le faire fonctionner avec une version plus récente de .NET Framework, recherchez des correctifs dans les PR et problèmes existants , mais vous devrez peut-être les appliquer vous-même. Par exemple, quelqu'un a publié un correctif pour .NET Framework v 4.7.1 . J'espère que ceux-ci seront fusionnés, mais je ne retiendrais pas mon souffle.
Si quelqu'un d'autre voit la même erreur qu'Anas (dans les commentaires), voici un problème GitHub d'il y a quelques semaines, et un autre problème éventuellement lié de 2017. Pensez à les augmenter et à ajouter plus de détails si vous rencontrez le même problème .
la source
Pour une solution .NET Framework, un simple " Remplacer dans les fichiers " a fait l'affaire pour moi:
Par exemple : de .NET Framework 4.5.2 à .NET Framework 4.7.2
Dans les fichiers package.config , remplacez tout
à
Dans les fichiers * .csproj , remplacez tout
à
la source
Puisque le Migrator de Target Framework est cassé, j'ai lancé ma propre recherche / remplacement (en utilisant git bash, cela fonctionne bien sur Windows); Fondamentalement, il change le v4.6.x en v4.7.2 , puis il convertit les fichiers en utilisant le fameux CRLF du DOS:
la source
Update-Package -ReInstall
faire des merveilles. Merci!Je me suis construit un outil simple pour migrer les versions du framework cible pour une solution entière, car l'extension Target Framework Migrator ne prend pas en charge Visual Studio 2017. Téléchargez l'outil depuis mon référentiel GitHub https://github.com/Xpitfire/TargetFrameworkMigrator
Je sais que ce n'est pas la meilleure façon de procéder, mais cela a fonctionné pour moi et peut-être que cela aidera aussi quelqu'un d'autre.
la source
Target Framework Migrator est très utile. Par défaut, il s'agit de la v4.7. Cependant, il est facile d'ajouter la prise en charge des v4.7.1, v4.7.2 et v4.8.
Recherchez le fichier Frameworks.xml dans le dossier C: \ Users {username} \ AppData \ Local \ Microsoft \ VisualStudio \ et modifiez-le en ajoutant ces versions de framework:
Après avoir redémarré Visual Studio, vous verrez de nouvelles versions.
la source
la source