Obecnie mój silnik widok brzytwy rzuca i błąd mówi "Proszę użyć wersji językowej 6 lub wyższej". To może być po prostu resharper, który dał mi wskazówkę. Ale jak zrobić maszynę do golenia używając C# 6.0. Reszta mojego rozwiązania w plikach cs i mogę używać wszystkich nowych funkcji wersji 7.Jak zrobić maszynę do gry z brzytwą, aby używać C# 6.0
Odpowiedz
Jeśli używasz tego z projektu 4.5.1
, aktualizacja do 4.5.2
może go naprawić.
przeciwnym razie zaleca się, aby zainstalować ten pakiet Nuget dostarczyć nowe funkcjonalności: Microsoft.CodeDom.Providers.DotNetCompilerPlatform
więc robi coś takiego:
<p>@Model.Person?.Name</p>
może działać. Jeśli nie, spróbuj być jawne tak:
<p>@(Model.Person?.Name)</p>
wierzę, jest to spowodowane błędem w szablonach dla web.config
kiedy projekt zostanie uaktualniony do nowszej wersji .NET Framework.
udało mi się rozwiązać ten problem, przechodząc do web.config
znalezienie węzeł system.codedom
oraz zmianę treści wyglądać następująco:
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
Microsoft.Net.Compilers i Microsoft.CodeDom.Providers.DotNetCompilerPlatform musi być zainstalowany w celu pracy – Anytoe
(Re-) Zainstalowanie powyższych dwóch pakietów doda tę sekcję do pliku .config. –
Tak, dziękuję @Alen, i stwierdziłem, że wystarczy zainstalować pkg Nuget dla Microsoft.CodeDom.Providers.DotNetCompilerPlatform, ponieważ Microsoft.Net.Compilers jest zależnością. –
Najlepsze instrukcje krok po kroku udało mi się znaleźć dla umożliwienia Funkcje C# 6 w szablonach RazorEngine są dostępne tutaj: https://github.com/Antaris/RazorEngine/issues/363#issuecomment-273106183
To, o czym nie wspomniano, polega na upewnieniu się, że podczas dodawania sekcji kompilatorów do pliku app.config numer wersji jest zgodny z wersją z instalowanego pakietu. W komentarzu, że to wersja 1.0.3, ale pakiet zainstalowałem 1.0.4 zamiast miał, więc musiał wyglądać następująco:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
</compilers>
Inne odpowiedzi są dość dobre, ale znalazłem dobry i krótki artykuł, który ostatecznie wyjaśnić kroki w tym numerze: https://cpratt.co/using-csharp-6-or-7-with-mvc-5/
W skrócie:
W konsoli Menedżer pakietów zainstalować
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
checka/zmienia ty Web.config z następującymi liniami na koniec:
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom>
możliwym duplikatu [C# 6.0 cechuje nie działa z Visual Studio 2015] (http://stackoverflow.com/questions/27968963/c-sharp-6-0-features-not-working-wi-visual-studio-2015) – cadrell0
nie - to rozwiązanie nie rozwiązało tego problemu. – MoXplod