Funkcje C # 6.0 nie działają z Visual Studio 2015
Testuję Visual Studio 2015 z C # 6.0, ale funkcje językowe nie działają. W aplikacji webowej MVC kompilowany jest następujący kod:
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
// More logic here...
}
Jednak, gdy uruchamiam aplikację przez Debug i IIS Express, dostaję następujący błąd:
CS1525: Invalid expression term".'
Jak włączyć te funkcje?
7 answers
To działa w MVC 5 (tested 5.2.3), wystarczy dodać pakiet Dom NuGet
Dostawcy CodeDOM dla kompilatora. NET...
Zastąpienie dostawców CodeDOM, którzy używają nowego kompilatora.NET Compiler Platform ("Roslyn") jako API usług. Zapewnia to wsparcie dla nowych funkcji językowych w systemach korzystających z CodeDOM (np. ASP.NET runtime compilation), jak również poprawę wydajności kompilacji tych systemy.
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-21 19:43:54
Cóż, mam MVC5 i niedawno zainstalowany VS 2015.
Zainstalowałem Pakiet dostawców CodeDOM, ale to nie pomogło... Ale po tym zdałem sobie sprawę, że pakiet obsługuje tylko framework 4.5, podczas gdy ja mam target framework ustawiony na 4.6 podczas testów-działa jednak z 4.5...
Zwróć więc uwagę również na ramy docelowe. Jeśli masz 4.5-wystarczy zainstalować pakiet Microsoft.CodeDom.Dostawcy.DotNetCompilerPlatform. Ale jeśli masz 4.5.1-4.6 jako cel, będziesz musiał zmienić w www.sekcja config
<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">
<providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<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>
</system.codedom>
Dla C # wystarczy zmienić type na:
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-23 14:40:55
Miałem ten sam problem w Visual Studio 2015. Inna odpowiedź tutaj nawiązywała do rozwiązania, którego użyłem, ale błędnie określili poprawkę i nigdy nie dali wyjaśnienia.
W menu Visual Studio wybierz Project i powinieneś zobaczyć podpunkt Enable C#6 / VB 14 Jeśli masz ten problem. Wybierz podpunkt tego menu. Pobierze poprawne pakiety z Nuget i zainstaluje je. Następnie uruchom ponownie Visual Studio i załaduj ponownie rozwiązanie.
Nie mogę zweryfikować, czy to również poprawi Właściwości projektu > Build > Advanced > Wersja Językowa Wybór do C# 6, więc możesz chcieć to sprawdzić również po włączeniu C# 6 z menu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-17 13:46:12
Sprawdź właściwości projektu, przejdź do build, advanced i sprawdź, czy C# 6.0 nie ma go jako domyślnego.
Obecnie istnieje doskonałe wsparcie dla MVC5 i C# 6.0 i działa niesamowicie dobrze!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-13 17:01:31
Włącznie z poradą instalacji najnowszego Microsoft.CodeDom.Providers.DotNetCompilerPlatform
musiałem również ustawić mój root Web.config
system.codedom
aby w końcu uzyskać wszystkie błędy w Visual Studio 2015
, aby odejść:
<system.codedom>
<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>
</system.codedom>
Teraz uruchom ponownie Visual Studio
i to powinno wystarczyć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-27 21:19:12
Visual Studio 2015 pokaże również Enable C#6 / VB 14
w menu projektu z ASP.NET wybrano stronę www / aplikację internetową.
Spowoduje to de facto zainstalowanie pakietów Microsoft.CodeDom.Providers.DotNetCompilerPlatform
i Microsoft.Net.Compilers
do twojego projektu i dodanie odpowiednich tagów do sieci.plik konfiguracyjny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-14 12:46:55
<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+" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-05 12:40:51