Testuję program Visual Studio 2015 z C # 6.0, ale funkcje językowe nie działają. W aplikacji internetowej MVC kompiluje się następujący kod:
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
// More logic here...
}
Jednak po uruchomieniu aplikacji za pośrednictwem Debug i IIS Express pojawia się następujący błąd:
CS1525: Nieprawidłowy termin wyrażenia „.”
Jak włączyć te funkcje?
c#
asp.net-mvc
visual-studio-2015
roslyn
c#-6.0
Chris Schiffhauer
źródło
źródło
compiler
element dla Roslyn codeprovider msdn.microsoft.com/en-us/library/y9x69bzw(v=vs.110).aspx w pliku web.config?Odpowiedzi:
Działa to w MVC 5 (testowane 5.2.3), wystarczy dodać pakiet Roslyn code dom Nuget
Dostawcy CodeDOM dla kompilatora .NET ...
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
źródło
nuget.org
. Jak widać z linku, jest to poprawna nazwa, a pakiet istnieje.Cóż, mam MVC5 i ostatnio zainstalowałem VS 2015.
Zainstalowałem pakiet dostawców CodeDOM, ale to nie pomogło ... Ale potem zdałem sobie sprawę, że ten pakiet obsługuje tylko framework 4.5, podczas gdy mam ustawiony framework docelowy na 4.6 podczas testów - działa jednak z 4.5 ...
Dlatego zwróć także uwagę na ramy docelowe. Jeśli masz 4.5 - po prostu zainstaluj pakiet Microsoft.CodeDom.Providers.DotNetCompilerPlatform. Ale jeśli masz 4.5.1-4.6 jako cel, będziesz musiał zmienić w sekcji web.config
W przypadku C # po prostu zmień typ na:
źródło
C# 6
pracyASP.NET 4.6
, ale lepiej byłoby umieścić kod z poprawnymtype
już tam ...Miałem ten sam problem w programie Visual Studio 2015. Inna odpowiedź dotyczyła zastosowanego przeze mnie rozwiązania, ale nieprawidłowo określili poprawkę i nigdy nie podali wyjaśnienia.
W menu programu Visual Studio wybierz pozycję projekt i powinieneś zobaczyć element podrzędny Włącz C # 6 / VB 14, jeśli masz ten problem. Wybierz tę pozycję menu. Pobierze odpowiednie pakiety z Nuget i zainstaluje je. Następnie uruchom ponownie program Visual Studio i ponownie załaduj rozwiązanie.
Nie mogę sprawdzić, czy to również naprawi wybór opcji Project Properties> Build> Advanced> Language Version na C # 6 , więc możesz chcieć to również sprawdzić po włączeniu C # 6 z menu.
źródło
Sprawdź właściwości projektu, przejdź do kompilacji, zaawansowanych i sprawdź, czy C # 6.0 nie jest ustawiony jako domyślny.
Obecnie istnieje doskonałe wsparcie dla MVC5 i C # 6.0 i działa zadziwiająco dobrze!
źródło
Uwzględniając zalecenia dotyczące instalowania najnowszej wersji,
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
musiałem również ustawić roota,Web.config
system.codedom
aby w końcu wszystkie błędyVisual Studio 2015
zniknęły:Teraz uruchom ponownie
Visual Studio
i to powinno wystarczyć.źródło
Program Visual Studio 2015 wyświetli również
Enable C#6 / VB 14
w menu Projekt z wybraną witryną / aplikacją internetową ASP.NET.To de facto zainstaluje
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
iMicrosoft.Net.Compilers
zapakuje do twojego projektu i doda odpowiednie tagi do pliku web.config.źródło
źródło