Żadne z powyższych również nie działało dla mnie;
- Biblioteki DLL zostały ustawione na Kopiuj lokalnie
- Dodanie przestrzeni nazw do obu plików web.config nic nie dało
- Dodanie odniesień do zestawów do system.web \ compilation \ assemblies również nie pomogło (chociaż nie usunąłem tych odniesień, więc może być tak, że są potrzebne)
Ale w końcu znalazłem coś, co dla mnie zadziałało:
To dlatego, że moje dane wyjściowe kompilacji trafiały do bin \ Debug \ do konfiguracji debugowania i bin \ Release \ do konfiguracji wydania. Jak tylko zmieniłem konfigurację kompilacji na "bin \" dla wszystkich konfiguracji (jak na obrazku poniżej), wszystko zaczęło działać tak, jak powinno !!!
Nie mam pojęcia, dlaczego rozdzielenie twoich kompilacji na foldery Release i Debug powinno spowodować uszkodzenie składni Razor, ale wydaje się, że coś nie może znaleźć zestawów. Dla mnie projekty, w których występowały problemy ze składnią maszynki do golenia, są w rzeczywistości projektami „biblioteki maszynki do golenia”. Są one ustawione jako projekty aplikacji, ale używam ich jako bibliotek klas z RazorGenerator do kompilowania moich widoków. Kiedy faktycznie próbowałem uruchomić jeden z tych projektów bezpośrednio, spowodowało to następujący błąd konfiguracji:
Nie można załadować pliku lub zestawu „System.Web.Helpers, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. System nie może odnaleźć określonego pliku.
To doprowadziło mnie do próby zmiany wyjścia kompilacji, ponieważ zauważyłem, że dla wszystkich projektów internetowych wynik kompilacji wydaje się zawsze znajdować się bezpośrednio w folderze bin, w przeciwieństwie do domyślnego dla bibliotek klas, które mają zarówno foldery wydania, jak i debugowania.