Ich möchte, dass eine msbuild-Task die Ansichten kompiliert, damit ich sehen kann, ob es zu einem guten Zeitpunkt ... Kompilierungsfehler gibt. Irgendwelche Ideen?
Ich möchte, dass eine msbuild-Task die Ansichten kompiliert, damit ich sehen kann, ob es zu einem guten Zeitpunkt ... Kompilierungsfehler gibt. Irgendwelche Ideen?
Antworten:
Ich würde ehrlich gesagt das RazorGenerator Nuget-Paket empfehlen . Auf diese Weise .designer.cs
wird beim Speichern einer Ansicht in Ihren Ansichten eine Datei generiert. Zusätzlich zu den Fehlern bei der Kompilierung für Ihre Ansichten werden diese auch in die Assembly vorkompiliert (= schnelleres Aufwärmen), und Resharper bietet zusätzliche Hilfe.
Um dies zu verwenden, fügen Sie das RazorGenerator- Nuget-Paket in Ihr ASP.NET MVC-Projekt ein und installieren Sie die Erweiterung " Razor Generator " unter Element unter Extras → Erweiterungen und Updates .
Wir verwenden dies und der Overhead pro Kompilierung mit diesem Ansatz ist viel geringer. Darüber hinaus würde ich wahrscheinlich .NET Demon von RedGate empfehlen, wodurch die Auswirkungen auf die Kompilierungszeit erheblich reduziert werden.
Hoffe das hilft.
Aus dem Readme-Word-Dokument für RC1 (nicht von Google indiziert)
Schritt nach dem Erstellen des ASP.NET-Compilers
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. Öffnen Sie zum Aktivieren dieser Eigenschaft die Projektdatei und setzen Sie die MvcBuildViews-Eigenschaft 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 länger.
Sie können Projekte aktualisieren, die mit früheren Versionen von MVC erstellt wurden, um die Validierung von Ansichten während der Erstellung einzuschließen, indem Sie die folgenden Schritte ausführen:
<PropertyGroup>
Element das folgende Element hinzu:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
Element am Ende der Projektdatei aus und ändern Sie es wie folgt:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Sie können hierfür aspnet_compiler 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 / "
Außerdem gibt es eine AspNetCompiler-Aufgabe in 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>
Wenn Sie Resharper verwenden, können Sie auch die lösungsweite Analyse aktivieren und alle Compilerfehler in Aspx-Dateien erkennen. Das machen wir ...
Die nächste Version von ASP.NET MVC (verfügbar ab Januar) sollte eine MSBuild-Aufgabe enthalten, mit der Ansichten kompiliert werden. Sie sollten also warten.
Siehe Ankündigung
Die hier gegebene 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 war auf einen Fehler in den Website-Projektdateien zurückzuführen. Siehe diesen Haacked-Artikel.
Siehe dies: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Erstellen> Codeanalyse ausführen
Hotkey: Alt+F11
Hat mir geholfen, Rasiermesserfehler zu erkennen.
Verwenden von Visual Studios ( kostenlosen ) Erweiterung Productivity Power Tools von hilft ein wenig . Insbesondere dieSolution Error Visualizer
Funktion. Damit werden Kompilierungsfehler im Lösungs-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 zur Kompilierungszeit in den jeweiligen CS-Dateien weiterhin rot unterstrichen. Die Signalisierung dieser Fehler wird jedoch im Projektmappen-Explorer nicht nach oben weitergegeben (in keiner Weise, auch nicht in der enthaltenen Quelldatei).
Vielen Dank für die BlueClouds
Korrektur meiner vorherigen Aussage.
Ich habe dies gerade als Problem gemeldet im Github-Projekt der Erweiterung gemeldet.