it-swarm.com.de

Kompilieren Sie Ansichten in ASP.NET MVC

Ich möchte, dass eine msbuild-Task die Ansichten kompiliert, damit ich sehen kann, ob es zur richtigen Zeit Kompilierungsfehler gibt ... Kompilierungszeit. Irgendwelche Ideen?

543
John Oxley

Ich würde ehrlich gesagt das RazorGenerator Nuget-Paket empfehlen. Auf diese Weise haben Ihre Ansichten ein .designer.cs -Datei, die beim Speichern generiert wird und zusätzlich zu Kompilierungsfehlern für Ihre Ansichten in der Assembly vorkompiliert wird (= schnelleres Aufwärmen). Resharper bietet auch zusätzliche Hilfe.

Um dies zu verwenden, fügen Sie das RazorGenerator Nuget-Paket in Ihr ASP.NET MVC-Projekt ein und installieren Sie den " Razor Generator "Erweiterung unter Punkt unter Extras → Erweiterungen und Updates .

Wir verwenden dies und der Overhead pro Kompilierung ist bei diesem Ansatz viel geringer. Darüber hinaus würde ich wahrscheinlich empfehlen. NET Demon von RedGate , wodurch die Auswirkungen auf die Kompilierungszeit erheblich reduziert werden.

Hoffe das hilft.

147
Mirko

Aus dem Readme-Word-Dokument für RC1 (nicht von Google indiziert)

ASP.NET Compiler Post-Build-Schritt

Derzeit werden Fehler in einer Ansichtsdatei erst zur Laufzeit erkannt. Damit Sie diese Fehler beim Kompilieren erkennen können, enthalten ASP.NET MVC-Projekte jetzt eine MvcBuildViews-Eigenschaft, die standardmäßig deaktiviert ist. Um diese Eigenschaft zu aktivieren, öffnen Sie die Projektdatei und setzen Sie die Eigenschaft MvcBuildViews auf true, wie im folgenden Beispiel gezeigt:

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

Hinweis Durch Aktivieren dieser Funktion wird die Erstellungszeit etwas verlängert.

Sie können Projekte, die mit früheren Versionen von MVC erstellt wurden, aktualisieren, um die Überprüfung von Ansichten während der Erstellung einzuschließen, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die Projektdatei in einem Texteditor.
  2. Fügen Sie das folgende Element unter dem obersten <PropertyGroup> Element: <MvcBuildViews>true</MvcBuildViews>
  3. Kommentieren Sie am Ende der Projektdatei das <Target Name="AfterBuild"> -Element und ändern Sie es wie folgt:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
547
JarrettV

Sie können aspnet_compiler dafür verwenden:

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

dabei ist "/Virtual/Application/Path/Or/Path/In/IIS/Metabase " ungefähr so: "/MyApp "oder" /lm/w3svc2/1/root/ "

Es gibt auch eine AspNetCompiler Task auf MSDN, die zeigt, wie aspnet_compiler in MSBuild integriert wird:

<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

Wenn Sie Resharper verwenden, können Sie Solution Wide Analysis aktivieren, und es erkennt alle Compilerfehler, die möglicherweise in ASPX-Dateien auftreten. Das machen wir ...

25
bh213

Die nächste Version von ASP.NET MVC (verfügbar ab Januar) sollte über einen MSBuild-Task verfügen, mit dem Ansichten kompiliert werden. Daher sollten Sie möglicherweise warten.

Siehe Ankündigung

11
bh213

Die hier angegebene Antwort funktioniert für einige MVC-Versionen, für andere jedoch nicht.

Die einfache Lösung funktionierte für MVC1, aber beim Upgrade auf MVC2 wurden die Ansichten nicht mehr kompiliert. Dies lag an einem Fehler in den Projektdateien der Website. Siehe diesen Artikel von Haacked.

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

6
user1040323

Erstellen> Code-Analyse ausführen

Hotkey: Alt+F11

Hat mir geholfen, Razor-Fehler zu erkennen.

4
Abu Abdullah

Verwenden der Productivity Power Tools ( kostenlos) -Erweiterung hilft ein bisschen . Insbesondere die Solution Error Visualizer Feature. Damit werden Kompilierungsfehler im Projektmappen-Explorer (in der Quelldatei, in der der Fehler gefunden wurde) visuell markiert. Aus irgendeinem Grund funktioniert diese Funktion jedoch nicht wie bei anderen Fehlern an einer anderen Stelle im Code.

In MVC-Ansichten werden Fehler bei der Kompilierung in den jeweiligen CS-Dateien immer noch rot unterstrichen. Das Signalisieren dieser Fehler wird jedoch im Projektmappen-Explorer nicht nach oben übertragen (auch nicht in der enthaltenen Quelldatei).

Vielen Dank für BlueClouds, dass Sie meine vorherige Aussage korrigiert haben.

Ich habe dies soeben als Problem im Github-Projekt der Erweiterung gemeldet.

1
Veverke