Chcę, aby zadanie msbuild skompilowało widoki, dzięki czemu mogę sprawdzić, czy w czasie kompilacji wystąpiły błędy czasu kompilacji. Jakieś pomysły?
Chcę, aby zadanie msbuild skompilowało widoki, dzięki czemu mogę sprawdzić, czy w czasie kompilacji wystąpiły błędy czasu kompilacji. Jakieś pomysły?
Odpowiedzi:
Szczerze polecam pakiet nuget RazorGenerator . W ten sposób w twoich widokach .designer.cs
generowany jest plik, gdy je zapisujesz, a oprócz błędów kompilacji dla twoich widoków, są one również wstępnie kompilowane w zestawie (= szybsze rozgrzewanie), a Resharper zapewnia również dodatkową pomoc.
Aby tego użyć, dołącz pakiet nuget RazorGenerator do swojego projektu ASP.NET MVC i zainstaluj rozszerzenie „ Razor Generator ” w pozycji Narzędzia → Rozszerzenia i aktualizacje .
Używamy tego, a narzut przy kompilacji przy takim podejściu jest znacznie mniejszy. Ponadto prawdopodobnie poleciłbym .NET Demon firmy RedGate, który znacznie zmniejsza wpływ czasu kompilacji.
Mam nadzieję że to pomoże.
Z słowa readme doc dla RC1 (nieindeksowane przez Google)
Kompilator ASP.NET po kompilacji
Obecnie błędy w pliku widoku nie są wykrywane do czasu uruchomienia. Aby umożliwić wykrycie tych błędów podczas kompilacji, projekty ASP.NET MVC zawierają teraz właściwość MvcBuildViews, która jest domyślnie wyłączona. Aby włączyć tę właściwość, otwórz plik projektu i ustaw właściwość MvcBuildViews na wartość true, jak pokazano w poniższym przykładzie:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
Uwaga Włączenie tej funkcji wydłuża czas kompilacji.
Możesz zaktualizować projekty utworzone za pomocą poprzednich wersji MVC, aby uwzględnić sprawdzanie poprawności widoków w czasie kompilacji, wykonując następujące kroki:
<PropertyGroup>
elementem:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
elementu i zmodyfikuj go, aby pasował do następujących elementów:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Możesz użyć do tego aspnet_compiler :
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
gdzie „ / Virtual / Application / Path / Or / Path / In / IIS / Metabase ” jest mniej więcej taki: „ / MyApp ” lub „ / lm / w3svc2 / 1 / root / ”
Istnieje również zadanie AspNetCompiler na MSDN, pokazujące, jak zintegrować aspnet_compiler z 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>
Ponadto, jeśli używasz Resharpera, możesz aktywować analizę Solution Solution Analysis i wykryje ona wszelkie błędy kompilatora, które możesz mieć w plikach aspx. Właśnie to robimy ...
Następna wersja ASP.NET MVC (dostępna w styczniu) powinna zawierać zadanie MSBuild, które kompiluje widoki, więc możesz poczekać.
Zobacz ogłoszenie
Podana tutaj odpowiedź działa dla niektórych wersji MVC, ale nie dla innych.
Proste rozwiązanie działało w przypadku MVC1, ale po uaktualnieniu do MVC2 widoki nie były już uzupełniane. Było to spowodowane błędem w plikach projektu witryny. Zobacz ten nawiedzony artykuł.
Zobacz: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Kompilacja> Uruchom analizę kodu
Skrót: Alt+F11
Pomógł mi złapać błędy Razor.
Korzystanie z rozszerzenia do narzędzi wydajnościowych Visual Studio ( bezpłatne ) trochę pomaga . W szczególności Solution Error Visualizer
funkcja. Dzięki niemu błędy kompilacji oznaczone wizualnie w eksploratorze rozwiązań (w pliku źródłowym, w którym znaleziono błąd). Jednak z jakiegoś powodu ta funkcja nie działa jak w przypadku innych błędów w innym miejscu w kodzie.
W widokach MVC wszelkie błędy czasu kompilacji będą nadal podkreślone na czerwono w odpowiednich plikach .cs, ale sygnalizowanie tych błędów nie jest propagowane w górę w Eksploratorze rozwiązań (w żaden sposób, nawet w zawierającym plik źródłowy).
Dziękuję za BlueClouds
poprawienie mojego poprzedniego oświadczenia.
Właśnie zgłosiłem to jako problem w projekcie github rozszerzenia.