Podczas zapoznawania się z ASP.NET .oraz MVC2 trafiłem na coś, co jest bardzo denerwujące. Mianowicie strony aspx nie są kompilowane podczas kompilacji samego projektu. Jaki jest tego skutek? Dodatkowa robota w poszukiwaniu błędów wynikających z literówek. Jednak do rzeczy….
Moja testowa aplikacja wypluła taki błąd:
Server Error in ‘/’ Application.

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1002: ; expected
Source Error:
|
Line 14: <script src=”../../Scripts/MicrosoftMvcAjax.js” type=”text/javascript”></script> Line 15: <script src=”../../Scripts/MicrosoftMvcValidation.js” type=”text/javascript”></script> Line 16: <% Html.EnableClientValidation() %> Line 17: Line 18: <% using (Html.BeginForm()) {%> |
Z czego widać, że brakuje ; w linii 16-tej. Prosta i oczywista sprawa, jednak trochę irytująca, ponieważ podczas kompilacji Visual Studio nie poinformowało mnie o tym problemie, trafiłem na niego dopiero ruszając ten konkretny kawałek kodu przechodząc na odpowiednią stronę.
Co gorsze, jak otworzymy odpowiedni plik, wówczas VS raczy nas poinformować o błędzie:
Zatem jak sobie z tym poradzić?
Należy włączyć kompilację stron aspx. W tym celu wystarczy wyłączyć projekt
Poprzez wykonanie unload Project a następnie wprowadzić zmiany w pliku csproj
To co nas interesuje to wpis MvcBuildViews.
Zmieniając tą wartość na true powodujemy, że Visual Studio będzie kompilować również strony aspx i każda literówka jak wyżej zostanie wyłapana przy pierwszej kompilacji. Zatem po wprowadzeniu zmiany pozostaje zapisać zmiany w pliku oraz załadować projekt ponownie.
Wreszcie podczas kompilacji dostajemy błąd:
Pozostaje dodać zapomniany ; i pracować dalej.
Oczywiście zaraz po sprawdzeniu trzeba niestety wyłączyć kompilację widoków, gdyż budowanie projektu trwa wtedy wieki.
Jest za to szybki sposób na sprawdzenie kilku plików ASPX podczas budowania z ręki. Wystarczy, że plik ASPX będzie otwarty do edycji w VS. Podczas kompilacji pliki te także zostaną skompilowane
dzięki za uwagę, warto to dorzucić do wpisu. Na szczęście mój projekt jest na tyle mały, że dodatkowy czas jest w pełni akceptowalny.
Co do drugiego to nie wiedziałem że to jest reguła. Zauważyłem jedynie że w otwartych plikach jakoś te błędy znajduje.
No można też zainstalować R# (resharpera) – wersja 5.1 świetnie radzi sobie z asp.net mvc
Przy włączonym Solution Wide Analys – pokazuje błędy w widokach bez potrzeby włączenia kompilacji w projekcie
Wlasnie czegos takiego szukalam, super!