J'ai ce problème frustrant. Je change le texte dans une vue rasante (cshtml), Start without Debugging
, actualise (Ctrl + F5) le navigateur, mais rien ne se passe. La partie étrange est que si je modifie la valeur de retour d'un contrôleur (par exemple, return Ok("test");
) ou un fichier statique inclus (comme CSS), le changement est visible. La vue rasoir ne se met à jour que si j'arrête de démarrer et d'arrête le débogage à chaque fois.
Voici les choses que j'ai déjà essayées:
Detect when file is changed outside the environment
est coché.On run, when projects are out of date
est Always build
.P.S. Je vois qu'il y a beaucoup de questions similaires, mais aucune des réponses ne semble résoudre mon problème.
Mettre à jour
Cela semble être un problème à une échelle beaucoup plus grande. Si je:
@RenderSection("css", required: true)
.InvalidOperationException: The following sections have been defined but have not been rendered by the page at 'bla\bla\bla':css
.À ce stade, VS 2015 est pratiquement inutilisable, car vous ne savez pas si quelque chose vous manque ou s'il passe à l'acte.
J’avais eu ce problème auparavant… .. Mon cas était sous Windows 10 VM parallèle sur Macbook Pro, et les fichiers du projet se trouvaient dans un dossier partagé avec Mac OS.
Si quelqu'un a le même cas que moi, déplacez le projet dans un répertoire non partagé tel que C:\corrigera le problème.
vérifiez votre web.config
et assurez-vous de ne pas avoir fcnMode="Disabled"
ou fcnMode="NotSet"
utilisation
<httpRuntime targetFramework="4.5.2" fcnMode="Default" />
ou
<httpRuntime targetFramework="4.5.2" fcnMode="Single" />
- Default Pour chaque sous-répertoire, l'application crée un objet qui surveille le sous-répertoire. Ceci est le comportement par défaut.
- Disabled La notification de modification de fichier est désactivée.
- NotSet La notification de modification de fichier n'étant pas définie, l'application crée un objet qui surveille chaque sous-répertoire. C'est la valeur par défaut comportement.
- Single L'application crée un objet pour surveiller le répertoire principal et utilise cet objet pour surveiller chaque sous-répertoire.
Voici ce qui semble se passer sous le capot: le framework .net compile votre rasoir en une machine-forme (DLL) et l'exécute. Il surveille ensuite votre dossier Web pour surveiller les modifications et, lorsqu'il détecte les modifications, il recompile votre rasoir et exécute la nouvelle DLL.
Dans votre cas, quelque chose semble échouer en raison des modifications apportées au fichier de surveillance. Il fonctionne toujours au redémarrage complet, car la compilation se produit alors même sans détection de changement de fichier. Les raisons communes sont:
Pour confirmer que c'est bien le problème, je vous recommande de modifier le fichier web.config (ajouter/supprimer un caractère) et de voir si le rechargement a réussi - il suffit de prouver qu'il s'agit d'un problème de recompilation et non d'un problème de débogage de visual-studio. . En supposant que ce soit le cas, et en supposant que ce ne soit pas un NAS, je vous conseillerais de donner temporairement au dossier une autorisation "Tout le monde - Tout" pour voir si cela fonctionne ensuite, puis de réduire progressivement les autorisations à l'endroit souhaité.
Si vous utilisez un Mac utilisant un Parallels WM et que votre projet se trouve sur votre Mac-volume, vous pouvez résoudre ce problème en utilisant chmod.
chmod -R 777 *
Je viens d'avoir le même problème. Après avoir longtemps débogué et essayé presque tout, nous avons découvert que quelqu'un avait déplacé le fichier d'un dossier à un autre dans Visual Studio et l'avait enregistré dans TFS. Le fichier de projet a donc été mis à jour mais le fichier d'origine existait toujours sur le disque. Ainsi, mon IIS local a rendu l'ancien fichier et non le nouveau fichier au nouvel emplacement.
C'était frustrant, oui.