2014-06-12 8 views
6

Domyślnie program Visual Studio sprawdza tylko błędy kompilacji w plikach CSHTML, jeśli są otwarte podczas kompilacji. Chcę, aby to się stało również w przypadku zamkniętych plików CSHTML.Sposób sprawdzania plików widoków pod kątem błędów kompilacji podczas kompilacji (bez otwierania)

Widziałem w tym poście: How to compile cshtml before runtime lub this post

Rozwiązanie było proste, wystarczy ustawić to w pliku csproj:

<MvcBuildViews>true</MvcBuildViews> 

Niestety ten rozpoczyna podnoszenie błędy w plikach cs że generuje w folderach tymczasowych. Pliki cs są przekonwertowanymi plikami cs html i same z siebie nie są kompilowane, stąd pojawiają się różne błędy kompilacji, które w rzeczywistości nie istnieją.


Moje obecne rozwiązanie jest to, że utrzymanie MvcBuildViews ustawienie fałszywe, a następnie ręcznie otworzyć wszystkie pliki CSHTML w projekcie przed budową.

Czy istnieje poprawka na pomijanie plików tymczasowych lub bardziej efektywny sposób niż otwieranie wszystkich plików CSHTML?

Odpowiedz

0

Czy istnieje poprawka na pomijanie plików tymczasowych lub bardziej efektywny sposób niż otwieranie wszystkich plików CSHTML?

Jedynym obsługiwanym sposobem jest element konfiguracji projektu <MvcBuildViews>. Jest to wsparcie przez MsBuild, które pozwala na działanie nienadzorowanych buildów. Jest to najbardziej skuteczny sposób sprawdzania błędów kompilacji w widokach.

pliki

CS są skonwertowane pliki html cs

Co to znaczy? Widoki to vbhtml lub cshtml. Brak rozszerzeń z rozszerzeniem .cs.

Bez dodawania prawidłowych elementów konfiguracji (poniżej) można uzyskać nieparzyste błędy, gdy pliki cshtml zostaną przekonwertowane na .cs (pliki pośrednie), a następnie skompilowane.

Niestety to powoduje zwiększanie liczby błędów w plikach CS wygenerowanych w folderach tymczasowych.

Istnieje mnóstwo odpowiedzi (1234) do korzystania z <MvcBuildViews>.

Najważniejszą rzeczą do zrozumienia w przypadku projektów MVC (ogólnie projektów internetowych) jest to, że każdy z widoków jest domyślnie kompilowany w katalogu obj/bin projektu. Zazwyczaj problem polega na tym, że kiedy IIS i IIS Express próbują ponownie skompilować widoki, gdy już istnieją. Dlatego powyższe poprawki zmieniają katalog kompilacji na katalog poza projektem.

+0

Widoki są konwertowane na pliki .CS. Następnie są budowane. W ten sposób MVC utrzymuje dobrą prędkość. Wszystko to dzieje się w folderach tymczasowych, które nie są częścią projektu. Problem polega na tym, że na moim komputerze, z ustawionym na true, to on również zaczyna sprawdzać te pliki tymczasowe.Ponieważ pliki tymczasowe są rozłączone, odwołania do klas nie działają w nim i powodują błędy. –

+0

Tak, foldery tymczasowe nie znajdują się w projekcie (.csproj), ale domyślnym folderem tymczasowym jest "obj" w folderze projektu (gdziekolwiek znajduje się plik .csproj). [Jak wyjaśniono w tych zalewach odpowiedzi, należy dodać atrybut '' ze ścieżką, która nie znajduje się w folderze projektu] (http://stackoverflow.com/a/2862996/209259). –

Powiązane problemy