Explications graphiques et textuelles détaillées de certains pièges rencontrés dans .NET Core

黄舟
Libérer: 2017-09-21 11:48:52
original
2884 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal