web-dev-qa-db-fra.com

Comment puis-je changer une bibliothèque standard .NET en une bibliothèque .NET Framework?

J'écris une bibliothèque de classes pour un analyseur syntaxique simple en C #. Lorsque je l'ai créé pour la première fois, j'utilisais .NET Standard 2.0, mais je dois maintenant le migrer vers .NET 4.6, à la fois pour se conformer aux autres projets de ma solution et pour utiliser NUnit.

J'ai essayé de suivre les instructions de la documentation Microsoft , mais lorsque j'essaie de sélectionner un autre framework dans les propriétés, je ne trouve que d'autres versions .NET standard.

Comment puis-je le migrer? Dois-je modifier manuellement le fichier .csproj?

8
Edward Minnix

Ouvrez le fichier de projet (.csproj) et remplacez TargetFramework par net462.

  <PropertyGroup>
    <TargetFramework>net462</TargetFramework>
  </PropertyGroup>
11
Jammer

Si vous publiez votre bibliothèque de classes en tant que paquet Nuget, il existe un meilleur moyen de le configurer. Découvrez cet article:

https://weblog.west-wind.com/posts/2017/Jun/22/MultiTargeting-and-Porting-a-NET-Library- to-NET-Core-20

En gros, vous pouvez configurer votre bibliothèque de classes pour le ciblage multiple, ce qui permet de l’importer dans des projets .net principaux ainsi que dans différentes versions de frameworks .net.

2
Marko

Mon expérience personnelle dans Visual Studio 2017 est que recréer un projet et ajouter des sources existantes est la méthode la plus simple, la plus sûre et la plus efficace. "TargetFramework" n'est pas suffisant . Ci-dessous une partie des diffs apparus par défaut:


 enter image description here

2
Kaponir

J'ai fait et travaillé pour moi en quelques étapes: 

  1. git Push votre code, donc vous avez une sauvegarde :)
  2. Décharger le projet dans VS (clic droit sur le projet et décharger)
  3. Editer le projet dans VS (clic droit et éditer)
  4. Remplacez TargetFramework OU/AND TargetFrameworkVersion par <TargetFramework>netcoreapp2.0</TargetFramework>

  5. Modifiez la ligne de projet, qui est généralement la première ligne (après la racine xml) en: <Project Sdk="Microsoft.NET.Sdk">

  6. Supprime l'importation qui est généralement la deuxième ligne (après la racine xml)

  7. Conservez vos PropertyGroups qui décrivent les options de construction, si vous le souhaitez (je veux les miennes comme le sont les personnalités)
  8. Supprimez les références et les références de fichier, elles ne sont pas nécessaires.
  9. Fermez le fichier et rechargez (recharger avec un clic droit).
  10. Supprimez le fichier assemblyinfo (du dossier de propriétés) car il n'est pas nécessaire, la version de l'assembly vient maintenant du projet
  11. Faites un clic droit sur le projet et allez dans les propriétés pour voir que vous n’avez aucune erreur dans le fichier proj. Assurez-vous que vous n'avez pas de fautes de frappe ou de balises qui ne sont pas proches.
  12. Construire. Si vous avez des dépendances qui vous manquent, cliquez avec le bouton droit de la souris sur le projet et ajoutez-les. - Je suppose que vous ne voulez pas les éditer dans le projet. Ou vous pouvez effectuer une restauration par dotnet ou dotnetbulid pour les ajouter, comme vous le souhaitez. 

J'espère que cela fonctionne pour toi. Il semble y avoir beaucoup d’étapes mais elles ne sont pas si compliquées et c’est un effort unique. 

0
Dan