Voglio che un'attività msbuild compili le viste in modo da poter vedere se ci sono errori in fase di compilazione in fase di compilazione. Qualche idea?
Voglio che un'attività msbuild compili le viste in modo da poter vedere se ci sono errori in fase di compilazione in fase di compilazione. Qualche idea?
Risposte:
Francamente consiglierei il pacchetto nuget RazorGenerator. In questo modo le tue viste .designer.cs
generano un file generato quando le salvi e oltre a ottenere errori di compilazione per le tue viste , sono anche precompilate nell'assembly (= riscaldamento più veloce) e Resharper fornisce anche un ulteriore aiuto.
Per usarlo includi il pacchetto nuget RazorGenerator nel tuo progetto ASP.NET MVC e installa l' estensione " Razor Generator " sotto la voce Strumenti → Estensioni e aggiornamenti .
Usiamo questo e l'overhead per compilazione con questo approccio è molto meno. Inoltre, consiglierei probabilmente .NET Demon di RedGate che riduce ulteriormente l'impatto del tempo di compilazione in modo sostanziale.
Spero che sia di aiuto.
Dal file readme doc per RC1 (non indicizzato da google)
Passaggio post-compilazione del compilatore ASP.NET
Attualmente, gli errori all'interno di un file di visualizzazione non vengono rilevati fino al runtime. Per consentire di rilevare questi errori in fase di compilazione, i progetti ASP.NET MVC ora includono una proprietà MvcBuildViews, che è disabilitata per impostazione predefinita. Per abilitare questa proprietà, aprire il file di progetto e impostare la proprietà MvcBuildViews su true, come mostrato nell'esempio seguente:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
Nota L' abilitazione di questa funzione aggiunge un certo sovraccarico al tempo di compilazione.
È possibile aggiornare i progetti creati con versioni precedenti di MVC per includere la convalida in tempo reale delle visualizzazioni eseguendo i seguenti passaggi:
<PropertyGroup>
elemento più in alto :
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
elemento e modificalo in modo che corrisponda a quanto segue:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Puoi usare aspnet_compiler per questo:
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
dove " / Virtual / Application / Path / Or / Path / In / IIS / Metabase " è qualcosa del genere: " / MyApp " o " / lm / w3svc2 / 1 / root / "
Inoltre c'è un'attività AspNetCompiler su MSDN, che mostra come integrare aspnet_compiler con 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>
Inoltre, se usi Resharper, puoi attivare Solution Wide Analysis e rileverà eventuali errori del compilatore che potresti avere nei file aspx. Questo è quello che facciamo...
La risposta fornita qui funziona per alcune versioni MVC ma non per altre.
La semplice soluzione ha funzionato per MVC1 ma sull'aggiornamento a MVC2 le viste non venivano più compilate. Ciò era dovuto a un bug nei file di progetto del sito Web. Vedi questo articolo Haacked.
Vedi questo: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Genera> Esegui analisi del codice
Tasto di scelta rapida: Alt+F11
Mi ha aiutato a catturare gli errori del rasoio.
L'uso dell'estensione ( gratuita ) di Power Tools per la produttività di Visual Studio aiuta un po ' . In particolare, la funzionalità. Con esso, gli errori di compilazione contrassegnati visivamente in Esplora soluzioni (nel file di origine in cui è stato rilevato l'errore). Per qualche ragione, tuttavia, questa funzione non funziona come con altri errori in qualsiasi altra parte del codice.Solution Error Visualizer
Con le viste MVC, eventuali errori in fase di compilazione verranno comunque sottolineati in rosso nei rispettivi file .cs, ma la segnalazione di questi errori non viene propagata verso l'alto in Esplora soluzioni (in nessun modo, nemmeno nel file di origine contenente).
Grazie per BlueClouds
aver corretto la mia precedente dichiarazione.
Ho appena segnalato questo come un problema sul progetto github dell'estensione.