Récemment, après la mise à niveau de .NET Core vers 2.0, j'ai commencé à bricoler de plus en plus, mais j'ai rencontré beaucoup de pièges, je vais donc les enregistrer ici.
Le premier écueil est la compilation conditionnelle
Lorsque nous écrivons certaines méthodes, nous ajoutons généralement des journaux de sortie pour le mode Debug afin que nous puissions vérifier, ainsi que pour Release The mode ajoute ou modifie certains paramètres spécifiques, mais aujourd'hui j'ai rencontré ce trou en écrivant ces
#if !DEBUG #endif Le code au milieu ne peut pas être modifié. Comment puis-je changer l'environnement de configuration ? je commence à douter. .NET Core dans VS 2017 ne prend-il pas en charge la compilation conditionnelle ?
J'ai donc créé un nouveau programme console et testé ce qui suit, mais j'ai constaté qu'il fonctionnait toujours :
Vous pouvez voir ici que je ne suis évidemment pas Debug environnement, mais #si DEBUG est toujours une couleur normale ! DEBUG est toujours gris. Après avoir exécuté F5 directement, j'ai trouvé que le résultat était au-delà de ma surprise
Cependant, j'ai soupçonné que quelque chose s'était mal passé après. VS mis à jour, j'ai donc créé un projet en utilisant l'ancien format du framework .net et j'ai trouvé que l'ancien est à nouveau bon
Le deuxième piège concerne certains fichiers sous .NET Core MVC Impossible de télécharger
J'ai créé un site en utilisant .NET Core MVC C'était plutôt bien au début, mais ensuite il était équipé d'une application, alors j'ai. J'ai mis le fichier apk directement sur le site Web. J'ai téléchargé le répertoire wwwroot, j'ai changé le nom en app.apk, puis j'ai visité : http://127.0.0.1/app.apk Il m'a renvoyé un 404 not find
<.> Parce qu'il y a encore beaucoup d'iis, j'ai donc tout de suite pensé que cela était dû à l'ajout de mime tous les jours, alors je suis allé sur le site iis pour l'ajouter , et j'ai découvert qu'il existait J'ai été confus pendant un moment, alors j'ai cherché dans le filtre de demande pour voir s'il y était interdit, mais j'ai trouvé que c'était inutile, j'ai donc changé le fichier en app.apk.zip et je l'ai essayé, et j'ai découvert que le zip pouvait être téléchargé Le troisième fichier de vue MVC .NET Core 2.0
À partir de la version 2.0, il semble que le fichier de vue soit directement empaqueté dans un fichier dll. Ce n'est pas le cas. n'est plus un fichier shtml après avoir été publié comme un mvc traditionnel, mais est compilé dans un fichier dll. La règle de dénomination est le nom du projet.PrecompiledViews.dll
<.>
Le quatrième piège Problème de DLL de référence .NET Core
us Dans le passé, certaines fonctions couramment utilisées étaient toujours transformées en une bibliothèque de classes distincte et compilées en dll pour une utilisation en projet, mais cela ne semble pas fonctionner dans les projets .NET Core
Au début, j'ai écrit une bibliothèque de classes publique, une nouvelle bibliothèque de classes est ajoutée dans la solution pour référencer le projet de bibliothèque de classes publique. rien d'anormal en faisant cela, mais quand je lance un autre vs pour créer une nouvelle solution et ajouter le projet dans Il est normal d'écrire du code dans VS après avoir référencé la dll de la bibliothèque de classes publique, et les invites de code sont également
Cependant, dès que j'appuie sur F5 pour déboguer, un piège apparaît et il signale que le type ou l'espace de noms est introuvable. La solution est de packager la bibliothèque de classes publique pour générer un package NuGet
Ensuite, ajoutez des références en gérant les packages NuGet, mais dans de nombreux cas, je ne le fais pas. Je ne veux pas mettre des bibliothèques de classes sur nuget.org. Je peux mettre les packages nuget générés dans les packages hors ligne Microsoft Visual Studio
Placez-le dans le répertoire correspondant aux packages hors ligne Microsoft Visual Studio
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!