Kompiluj widoki w ASP.NET MVC

Chcę, aby zadanie msbuild skompilowało widoki, żebym mógł sprawdzić, czy są błędy w czasie kompilacji... czas kompilacji. Jakieś pomysły?

Author: tereško, 2008-12-20

8 answers

Szczerze polecam RazorGenerator pakiet nuget. W ten sposób twoje widoki mają plik .designer.cs generowany podczas ich zapisywania i oprócz błędów w czasie kompilacji dla Twoich widoków, są one również wstępnie skompilowane do zestawu (= szybsze rozgrzewanie), a Resharper zapewnia również dodatkową pomoc.

Aby skorzystać z tej opcji, Dołącz RazorGenerator pakiet nuget w tobie ASP.NET projekt MVC i zainstalowanie rozszerzenia "Razor Generator " pod pozycją Tools → Rozszerzenia i aktualizacje .

Używamy tego i narzut na kompilację z tym podejściem jest znacznie mniejszy. Na dodatek prawdopodobnie polecam . NET Demon by RedGate, który dodatkowo znacznie skraca czas kompilacji.

Mam nadzieję, że to pomoże.
 157
Author: Mirko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-01 12:23:47

z readme word doc dla RC1 (nie indeksowane przez google)

ASP.NET kompilator Post-Build Step

Obecnie błędy w pliku widoku nie są wykrywane do czasu uruchomienia. Aby umożliwić wykrycie tych błędów w czasie kompilacji, ASP.NET projekty MVC zawierają teraz właściwość Mvcbuildview, która jest domyślnie wyłączona. Aby włączyć tę właściwość, otwórz plik projektu i ustaw właściwość Mvcbuildview na 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 powoduje wydłużenie czasu kompilacji.

Możesz zaktualizować projekty, które zostały utworzone przy użyciu poprzednich wersji MVC, aby zawierały walidację widoków w czasie kompilacji, wykonując następujące kroki:

  1. Otwórz plik projektu w edytorze tekstu.
  2. Dodaj następujący element pod top-most <PropertyGroup> element: <MvcBuildViews>true</MvcBuildViews>
  3. na końcu pliku projektu odkomentuj element <Target Name="AfterBuild"> i zmodyfikuj go tak, aby pasował do po:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
 569
Author: JarrettV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-10 08:48:59

Możesz użyć aspnet_compiler za to:

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 coś takiego:" / MyApp " lub " /LM / w3svc2/1 / root/"

Istnieje również zadanie AspNetCompiler w MSDN pokazano 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>
 52
Author: maxnk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 12:32:32

Ponadto, jeśli używasz Resharper, możesz aktywować szeroką analizę rozwiązania, która wykryje wszelkie błędy kompilatora, które możesz mieć w plikach aspx. Tym się zajmujemy...

 27
Author: bh213,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-20 12:25:29

Następne wydanie ASP.NET MVC (dostępny w styczniu) powinien mieć zadanie MSBuild, które kompiluje widoki, więc możesz chcieć poczekać.

Zobacz ogłoszenie

 12
Author: bh213,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-20 12:12:35

Odpowiedź podana tutaj działa dla niektórych wersji MVC, ale nie dla innych.

Proste rozwiązanie działało dla MVC1, ale po aktualizacji do MVC2 widoki nie były już komplementowane. Było to spowodowane błędem w plikach projektu strony internetowej. Zobacz ten artykuł.

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

 7
Author: user1040323,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-17 15:04:17

Build > Uruchom Analizę Kodu

Hotkey: Alt+F11

Pomógł mi złapać błędy brzytwy.

 7
Author: Abu Abdullah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 08:25:10

Korzystanie z programu Visual Studio wydajne Elektronarzędzia (free ) rozszerzenie pomaga trochę . W szczególności funkcja Solution Error Visualizer. Wraz z nim błędy kompilacji zaznaczone wizualnie w Eksploratorze rozwiązań(w pliku źródłowym, w którym znaleziono błąd). Z jakiegoś powodu ta funkcja nie działa jak w przypadku innych błędów gdziekolwiek indziej w kodzie.

W widokach MVC, wszelkie błędy w czasie kompilacji będą nadal podkreślone na Czerwono w ich odpowiednikach .pliki cs, ale sygnalizacja tych błędów nie jest propagowana w Eksploratorze rozwiązań (w żaden sposób, nawet nie w pliku źródłowym zawierającym).

Dzięki za poprawienie mojej poprzedniej wypowiedzi.

Zgłosiłem to jako problem w projekcie github rozszerzenia.

 2
Author: Veverke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-12 07:56:49