web-dev-qa-db-fra.com

Comment savoir si le code est écrit pour .NET ou .NET Core standard?

Je travaille avec une base de code contenant du code dans .NET normal et du code dans .NET Core. Lorsque j'ouvre un fichier .cs individuel, je ne suis pas toujours sûr de savoir s'il était censé être compilé avec .NET ou .NET Core standard. De toute évidence, 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 ou .NET Core standard?

(J'imagine que la recherche de certaines utilisations qui n'existent que dans un cadre ou dans un autre est probablement le plus gros signe révélateur. Si c'est effectivement le moyen de le déterminer, existe-t-il une page Web qui répertorie les utilisations qui sont exclusives à .NET vs .NET Core?)

6
Andr

Votre meilleur pari est de regarder le fichier .csproj. 

Recherchez l'élément <TargetFramework> ou <TargetFrameworks>. Il y aura des entrées telles que net461. Vous pouvez faire référence à la carte ici:

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

3
RQDQ

Microsoft a un Portability Analyzer qui vous indiquera si votre code fonctionnera sur différentes plates-formes et quels types de modifications sont nécessaires, mais je ne sais pas comment indiquer à quelle plate-forme le code était écrit pour est de vérifier les propriétés du projet ou makefile.

4
Terry Carmen

Vous pouvez également utiliser une directive if preprocessor telle que:

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

Je devrais ajouter que c’est une méthode à utiliser, notamment avec le code partagé utilisé entre NetFramework et Core.

1
liquidanswer