34 votes

Comment savoir si un code est écrit pour .NET ordinaire ou .NET Core ?

Je travaille avec une base de code qui contient du code en .NET normal et du code en .NET Core. Lorsque j'ouvre un fichier .cs, je ne sais pas toujours si le fichier doit être compilé avec .NET classique ou .NET Core. Il est évident qu'il y a beaucoup de chevauchement entre les deux frameworks - et beaucoup de code peut être exécuté sans modification dans les deux frameworks.

Ma question est donc la suivante : quels sont les moyens simples de déterminer si un fichier .cs est destiné à être compilé pour .NET normal ou .NET Core ?

(J'imagine que la recherche de certaines utilisations qui n'existent que dans un cadre ou l'autre est probablement le plus grand signe révélateur. Si c'est effectivement la façon de le déterminer, existe-t-il une page web qui répertorie les utilisations exclusives à .NET ordinaire par rapport à .NET Core).

32voto

RQDQ Points 8896

Votre meilleure chance est de regarder le fichier .csproj.

Recherchez soit le <TargetFramework> ou le <TargetFrameworks> élément. Il comportera des entrées telles que net461 . Vous pouvez faire une référence croisée avec le tableau ici :

https://docs.microsoft.com/en-us/dotnet/standard/frameworks

8voto

Terry Carmen Points 2492

Microsoft a un Analyseur de portabilité qui vous dira si votre code fonctionnera sur diverses plates-formes et quels types de changements sont nécessaires, mais la seule façon que je connaisse pour dire quelle plate-forme un code particulier a été écrit pour est de vérifier les propriétés du projet ou le makefile.

8voto

liquidanswer Points 158

Vous pouvez également utiliser une directive de préprocesseur if, comme ceci :

public class MyClass
{
   static void Main()
   {
#if (NETCOREAPP1_0 || NETCOREAPP1_1 || NETCOREAPP2_0 || NETCOREAPP2_1)
        <some code>
#else
        <some code>
#endif
   }
}

Je dois ajouter que c'est une méthode à utiliser à l'avenir, en particulier avec le code partagé utilisé entre NetFramework et Core.

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