590 votes

Compiler les vues dans ASP.NET MVC

Je veux une tâche msbuild pour compiler les vues que je puisse voir si il y a des erreurs de compilation au puits... moment de la compilation. Toutes les idées ?

593voto

JarrettV Points 9099

À partir de ce fichier word doc pour la RC1 (non indexées par google)

ASP.NET Compilateur Étape de Post-construction

Actuellement, les erreurs dans un fichier de vue ne sont pas détectés jusqu'à l'exécution. Pour vous permettre de détecter ces erreurs lors de la compilation, ASP.NET MVC projets comprennent maintenant une MvcBuildViews de la propriété, qui est désactivé par défaut. Pour activer cette propriété, ouvrez le fichier de projet et de définir le MvcBuildViews true à la propriété, comme le montre 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 moment de la construction.

Vous pouvez mettre à jour des projets qui ont été créés avec les versions précédentes de la MVC pour inclure au moment de la construction de la validation de vues en effectuant les étapes suivantes:

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

161voto

Mirko Points 1871

Franchement, je recommande la RazorGenerator package nuget. De cette façon, vos points de vue ont une .le concepteur.cs fichier généré lorsque vous les enregistrez et sur le dessus de l'obtention de la compilation des erreurs pour vous vues, ils sont également pré-compilé dans l'assemblée (= plus rapide de chauffe) et Resharper fournit de l'aide supplémentaire.

Pour utiliser le RazorGenerator package nuget en vous ASP.NET projet MVC et installer le "Rasoir" générateurs de prorogation en vertu de l'article sous Outils -> Extensions et Mises à jour

Nous utilisons cette et les frais généraux par compiler avec cette approche est beaucoup moins. Sur le dessus de cela, je vous recommanderais sûrement .NET Démon par RedGate ce qui réduit encore le temps de compilation impact sensiblement.

Espérons que cette aide.

54voto

maxnk Points 4257

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ù "/Virtuel/Application/Emplacement/Ou/Chemin/De/IIS/Métabase" est quelque chose comme ceci: "/MyApp" ou "/lm/w3svc2/1/root/"

Il y a aussi un AspNetCompiler Tâche 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>

28voto

bh213 Points 2927

En outre, si vous utilisez Resharper, vous pouvez analyser activement Solution Wide et détecter les erreurs de compilation que vous pourriez avoir dans les fichiers aspx. C'est ce que nous faisons ...

15voto

bh213 Points 2927

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 l' annonce

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X