Question Compiler des vues dans ASP.NET MVC


Je veux une tâche msbuild pour compiler les vues afin que je puisse voir s'il y a bien des erreurs de compilation ... la compilation. Des idées?


509
2017-12-20 10:51


origine


Réponses:


Je recommanderais franchement le RazorGenerator paquet de nuget. De cette façon, vos vues ont un .designer.cs fichier généré lorsque vous les enregistrez et en plus d'obtenir des erreurs de compilation pour vos vues, ils sont également précompilés dans l'assemblage (= réchauffement plus rapide) et Resharper fournit également de l'aide supplémentaire.

Pour l'utiliser, incluez le RazorGenerator nuget package dans votre projet ASP.NET MVC et installez le "Générateur de rasoir"extension sous article sous Outils → Extensions et mises à jour.

Nous l'utilisons et les frais généraux par compilation avec cette approche sont beaucoup moins. En plus de cela, je recommanderais probablement .NET Demon par RedGate ce qui réduit encore plus l'impact du temps de compilation.

J'espère que cela t'aides.


129
2018-04-10 21:26



A partir du doc ​​de readme word pour RC1 (non indexé par google)

Etape du post-build du compilateur ASP.NET

Actuellement, les erreurs dans un fichier de vue ne sont pas détectées avant l'exécution. Pour vous permettre de détecter ces erreurs lors de la compilation, les projets ASP.NET MVC incluent désormais une propriété MvcBuildViews, qui est désactivée par défaut. Pour activer cette propriété, ouvrez le fichier de projet et définissez la propriété MvcBuildViews sur true, comme illustré dans l'exemple suivant:

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

Remarque   L'activation de cette fonctionnalité ajoute une surcharge au temps de construction.

Vous pouvez mettre à jour des projets qui ont été créés avec des versions précédentes de MVC pour inclure la validation des vues de création en procédant comme suit:

  1. Ouvrez le fichier de projet dans un éditeur de texte.
  2. Ajouter l'élément suivant sous le plus haut <PropertyGroup> élément: <MvcBuildViews>true</MvcBuildViews>
  3. À la fin du fichier de projet, décommentez le <Target Name="AfterBuild"> élément et modifiez-le pour faire correspondre les éléments suivants:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

529
2018-02-12 19:52



Vous pouvez utiliser aspnet_compiler pour ça:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site

où "/ Virtual / Application / Chemin / Ou / Chemin / In / IIS / Metabase"est quelque chose comme ça:"/ MyApp" ou "/ lm / w3svc2 / 1 / root /"

Il y a aussi un Tâche AspNetCompiler sur MSDN, montrant comment intégrer aspnet_compiler avec MSBuild:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="PrecompileWeb">
        <AspNetCompiler
            VirtualPath="/MyWebSite"
            PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
            TargetPath="c:\precompiledweb\MyWebSite\"
            Force="true"
            Debug="true"
        />
    </Target>
</Project>

44
2017-12-20 11:04



De plus, si vous utilisez Resharper, vous pouvez activer l'analyse globale de la solution et détecter toutes les erreurs de compilation que vous pourriez avoir dans les fichiers aspx. C'est ce que nous faisons ...


24
2017-12-20 12:25



La prochaine version d'ASP.NET MVC (disponible en janvier) devrait avoir une tâche MSBuild qui compile les vues, donc vous pourriez vouloir attendre.

Voir annonce


11
2017-12-20 12:12



La réponse donnée ici fonctionne pour certaines versions de MVC mais pas pour d'autres.

La solution simple a fonctionné pour MVC1 mais lors de la mise à niveau vers MVC2, les vues n'étaient plus compliquées. Cela était dû à un bug dans les fichiers du projet de site Web. Voir cet article Haacked.

Regarde ça: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx


6
2017-11-17 15:04



Build> Analyse du code d'exécution

Touche de raccourci: Alt+F11

M'a aidé à attraper les erreurs de rasoir.


3
2017-11-03 08:25



Utilisation de Visual Studio Outils de productivité (gratuit) extension aide un peu. Plus précisément, le Solution Error Visualizer fonctionnalité. Avec elle, les erreurs de compilation marquées visuellement dans l'explorateur de solution (dans le fichier source où l'erreur a été trouvée). Pour une raison quelconque, cependant, cette fonctionnalité ne fonctionne pas comme avec d'autres erreurs ailleurs dans le code.

Avec les vues MVC, les erreurs de compilation seront toujours soulignées en rouge dans leurs fichiers .cs respectifs, mais la signalisation de ces erreurs ne sera pas propagée vers le haut dans l'Explorateur de solutions (en aucun cas, même pas dans le fichier source contenant).

Merci pour BlueClouds pour corriger ma déclaration précédente.

Je viens de le signaler en tant que problème sur le projet github de l'extension.


1
2018-03-31 10:49