Mam kilka projektów w rozwiązaniu, a funkcje C# 7, takie jak krotki i wyrazy rzutów, działają dobrze we wszystkich projektach bibliotecznych, ale istnieje projekt WWW (nie Core), który nie kompiluje się z powodu błędów w funkcjach C# 7. Zaraz po kompilacji okno błędu szybko się kasuje, prawdopodobnie dlatego, że IDE/edytor kompiluje te same jednostki bez błędu. Muszę użyć okna wyjściowego, aby zobaczyć błędy kompilatora. To tak, jakby IDE/edytor przyjął C# 7, ale kompilator użyty w kompilacji nie jest.Funkcje C# 7 nie działają w projekcie WWW w Visual Studio 2017 RC
Próbowałem dodać "__DEMO__,__DEMO_EXPERIMENTAL__
" do symboli kompilacji warunkowych, bezskutecznie. Eksperymentowałem z kierowaniem na inną wersję środowiska i edytowałem plik web.config, w tym znaczniki compilation
i targetFramework
z system.web
.
Przykładowe błędy:
if (!config.Properties.TryGetValue(modelId, out var model)) // error CS1003: Syntax error, ',' expected
if (modelDescription is ComplexTypeModelDescription complexTypeModelDescription) // error CS1026:) expected
Oto kilka pierwszych linii pliku csproj dla projektu:
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Aktualizacja: Próbowałem tworzenia nowego projektu internetowego z wykorzystaniem najnowszych szablonu w VS 2017 RC i kopiowanie w moich plikach źródłowych. Ta sama rzecz.
Próbowałem również jawnie ustawić projekt | Właściwości | Zbuduj | Zaawansowane | Wersja językowa do 7. Wyniki w "Niepoprawna opcja" 7 "dla/langversion".
Spędziłem ponad godzinę pracując nad budową i czyszcząc mój projekt za każdym razem z błędem fatalnym. Zainstalowałem nawet VS2017. Wtedy znalazłem twoją odpowiedź i natychmiast rozwiązałem problem. Dziękuję Ci! – jao
Zastanawiam się, że ta odpowiedź nie jest oznaczona jako odpowiedź! Wielkie dzięki! –
Idealny! W moim przypadku była to edycja społeczności VS2017. –