Próbuję ukierunkować .NET 4.6, a także skorzystać z najnowszej wersji C #, zmieniając wersję językową C # na 6.
Jednak podczas kompilacji wyskoczył mi ten błąd:
Błąd Nieprawidłowa opcja '6' dla / langversion; musi mieć wartość ISO-1, ISO-2, 3, 4, 5 lub wartość domyślną
Jeśli zaktualizuję ustawienie /langversion:6
w Web.Config do 5, to działa,
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
Ale jak mam to rozwiązać bez uciekania się do niższej wersji językowej?
Używam programu Visual Studio 2015 Community Edition, a także ręcznie zainstalowałem .NET Framework 4.6 na wypadek, gdyby nie było domyślnie instalowane przez program Visual Studio 2015.
Projekt jest standardowym projektem szablonu ASP.NET MVC utworzonym przez program Visual Studio 2015.
c#
.net
asp.net-mvc-5.2
.net-4.6
Rosdi Kasim
źródło
źródło
/langversion:6
...Odpowiedzi:
Zwróć uwagę na "typ" kompilatora w
Web.Config
pliku przy zmianie wersji Framework:dla 4.5 i C # 5 -
type="Microsoft.CSharp.CSharpCodeProvider...
dla wersji 4.6 i C # 6 -
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Więcej informacji w tym poście na forum
źródło
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
Po prostu wyczyszczenie rozwiązania iZaktualizuj następujące pakiety NuGet (niezależnie od tego, które są zainstalowane), aby rozwiązać problem:
źródło
1. Przejdź do projektu i wybierz właściwości projektu.
2 Wybierz opcję Buduj i kliknij przycisk Zaawansowane.
3. Wybierz domyślną wersję językową.
4. zapisz.
https://youtu.be/IP8feQeWqkk
źródło
Spotkałem się z takim zachowaniem, jeśli projekt nie został w pełni zaktualizowany do VS2015. W przypadku, gdy otworzysz rozwiązanie z 2015 roku w VS2013 - otrzymasz ten błąd
źródło
Otwórz konsolę Menedżera pakietów NuGet i uruchom to następujące polecenie
Pakiet aktualizacji Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
źródło
Zobacz odpowiedź na dziwny błąd kompilacji ASP.NET! .
Obniżenie języka C # do 5 tylko maskuje problem, gdy tylko ktoś użyje funkcji C # 6, Twoja witryna / projekt ulegnie awarii i nadal będziesz spędzać czas na naprawianiu go ponownie. Wypróbuj rozwiązanie w linku.
źródło
Podobny problem miałem, gdy ładowałem aplikację po raz pierwszy w Visual Studio 2019. Zaktualizowanie nugeta „Microsoft.CodeDom.Providers.DotNetCompilerPlatform” do nowszej wersji załatwiło sprawę.
źródło