web-dev-qa-db-fra.com

Compiler les vues dans ASP.NET MVC

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

543
John Oxley

Franchement, je recommanderais le paquet de nugets RazorGenerator . Ainsi, vos vues ont un fichier .designer.cs généré lorsque vous les enregistrez et en plus des erreurs de compilation des vues, elles sont également précompilées dans Assembly (= accélération plus rapide) et Resharper fournit également une aide supplémentaire.

Pour utiliser ceci, incluez le paquet de nugets RazorGenerator dans votre projet ASP.NET MVC et installez le " Razor Generator "extension sous élément sous Outils → Extensions et mises à jour .

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

J'espère que cela t'aides.

147
Mirko

À partir du fichier readme Word pour RC1 (non indexé par Google)

Étape de post-génération du compilateur ASP.NET

Actuellement, les erreurs dans un fichier de vue ne sont pas détectées jusqu'au moment de l'exécution. Pour vous permettre de détecter ces erreurs au moment 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 indiqué dans l'exemple suivant:

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

Note L'activation de cette fonctionnalité ajoute un surcoût à la construction.

Vous pouvez mettre à jour les projets créés avec les versions précédentes de MVC afin d'inclure la validation des vues au moment de la construction en procédant comme suit:

  1. Ouvrez le fichier de projet dans un éditeur de texte.
  2. Ajoutez l'élément suivant sous l'élément <PropertyGroup> le plus haut: <MvcBuildViews>true</MvcBuildViews>
  3. À la fin du fichier de projet, supprimez la mise en commentaire de l'élément <Target Name="AfterBuild"> et modifiez-le afin qu'il corresponde à ce qui suit:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
547
JarrettV

Vous pouvez utiliser aspnet_compiler pour cela:

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/Or/Chemin/Dans/IIS/Métabase " est quelque chose comme ceci: "/MyApp "ou" /lm/w3svc2/1/root/ "

Il existe également un tâche AspNetCompiler sur MSDN, qui montre 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>
48
maxnk

De plus, si vous utilisez Resharper, vous pouvez activer Solution Wide Analysis et il détectera toutes les erreurs de compilation que vous pourriez avoir dans les fichiers aspx. C'est ce que nous faisons ...

25
bh213

La prochaine version de ASP.NET MVC (disponible vers le mois de janvier) devrait comporter une tâche MSBuild qui compile les vues. Vous devrez peut-être attendre.

Voir annonce

11
bh213

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

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

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

6
user1040323

Construire> Exécuter l'analyse de code

Raccourci clavier: Alt+F11

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

4
Abu Abdullah

Utilisation de l'extension Productivity Power Tools ( libre ) aide un peu . Plus précisément, la fonction Solution Error Visualizer. Avec elle, les erreurs de compilation marquées visuellement dans l'explorateur de la 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 n'importe où ailleurs dans le code.

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

Merci pour BlueClouds d’avoir corrigé ma déclaration précédente.

Je viens de signaler ceci comme un numéro sur le projet github de l'extension.

1
Veverke