Przeglądałem najnowsze funkcje wprowadzone w C # 6.0 i właśnie podążyłem za przykładem inicjalizatora właściwości auto,
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
ale moje IDE nie rozpoznało składni.
Zastanawiam się, jak mogłem włączyć C # 6.0 w Visual Studio 2013. Korzystam ze struktury docelowej 4.5.1.
c#
visual-studio
visual-studio-2013
c#-6.0
Hassaan
źródło
źródło
Odpowiedzi:
Informacje na temat przestarzałego oprogramowania w wersji wstępnej:
Zgodnie z tym jest to tylko instalacja i przejdź do Visual Studio 2013:
Więc po prostu pobierz pliki z https://github.com/dotnet/roslyn i jesteś gotowy do pracy.
Musisz wiedzieć, że jest to nieaktualna wersja zaimplementowanych tam specyfikacji, ponieważ nie aktualizują one już pakietu Visual Studio 2013 :
Więc jeśli chcesz korzystać z najnowszej wersji, musisz pobrać Visual Studio 2015 .
źródło
W ramach VS2013 możesz zainstalować nowe kompilatory w projekcie jako pakiet nuget . W ten sposób nie potrzebujesz VS2015 ani zaktualizowanego serwera kompilacji.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Pakiet pozwala na użycie / kompilację kodu / składni C # 6.0. Ponieważ VS2013 nie rozpoznaje natywnie nowej składni C # 6.0, będzie wyświetlał błędy w oknie edytora kodu, chociaż będzie dobrze działał .
Za pomocą Resharpera będziesz otrzymywać zawiłe linie na funkcjach C # 6, ale żarówka daje opcję „Włącz obsługę C # 6.0 dla tego projektu” (ustawienie zapisane w .DotSettings).
Jak wspomniano przez @ stimpy77: do obsługi widoków MVC Razor potrzebujesz dodatkowego pakietu (dla tych, którzy nie czytają komentarzy)
Jeśli chcesz mieć pełną obsługę C # 6.0, musisz zainstalować VS2015.
źródło
Wiele odpowiedzi tutaj napisano przed przejściem Roslyn (kompilatory .NET C # i VB typu open source) do wersji .NET 4.6. Więc nie pomogą ci, jeśli twój projekt celuje, powiedzmy 4.5.2, tak jak mój (odziedziczony i nie można go zmienić).
Ale możesz pobrać poprzednią wersję Roslyn z https://www.nuget.org/packages/Microsoft.Net.Compilers i zainstalować ją zamiast najnowszej wersji. Użyłem 1.3.2. (Próbowałem 2.0.1 - która wydaje się być ostatnią wersją działającą w .NET 4.5 - ale nie udało mi się go skompilować *). Uruchom to z konsoli Menedżera pakietów w VS 2013:
Następnie uruchom ponownie Visual Studio. Początkowo miałem kilka problemów; musisz przywrócić domyślną wersję C # (C # 6.0 nie pojawia się na liście wersji, ale wygląda na domyślną), a następnie wyczyścić, zapisać, zrestartować VS i ponownie skompilować.
Co ciekawe, nie miałem żadnych błędów IntelliSense z powodu funkcji C # 6.0 użytych w kodzie (które były powodem, dla którego chciałem C # 6.0 w pierwszej kolejności).
* wersja 2.0.1 zwróciła błąd Zadanie „Microsoft.CodeAnalysis.BuildTasks.Csc nie mogło zostać załadowane z zestawu Microsoft.Build.Tasks.CodeAnalysis.dll. Nie można załadować pliku lub zestawu„ Microsoft.Build.Utilities.Core, wersja = 14.0.0.0, Kultura = neutralny, PublicKeyToken = b03f5f7f11d50a3a 'lub jedna z jego zależności. System nie może znaleźć określonego pliku. Potwierdź, że deklaracja jest poprawna, że zestaw i wszystkie jego zależności są dostępne i że zadanie zawiera klasa publiczna, która implementuje Microsoft.Build.Framework.ITask.
AKTUALIZACJA Jedną z rzeczy, które zauważyłem po opublikowaniu tej odpowiedzi, jest to, że jeśli zmienisz dowolny kod podczas debugowania („Edytuj i kontynuuj”), przekonasz się, że kod C # 6.0 nagle pojawi się jako błąd w czymś, co wydaje się powracać do środowisko wcześniejsze niż C # 6.0. Wymaga to ponownego uruchomienia sesji debugowania. BARDZO denerwujące, zwłaszcza w przypadku aplikacji internetowych.
źródło
Warto wspomnieć, że czas kompilacji zostanie wydłużony dla użytkowników VS 2015 po :
Ci, którzy używają VS 2015 i muszą zachować ten pakiet w swoich projektach, mogą naprawić dłuższy czas kompilacji .
Edytuj plik
packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
i wyczyść go. Plik powinien wyglądać następująco:Takie postępowanie wymusza zbudowanie projektu takim, jaki był przed dodaniem
Microsoft.Net.Compilers
pakietuźródło
Możliwe jest użycie pełnych funkcji C # 6.0 w Visual Studio 2013, jeśli masz Resharper.
Musisz włączyć Resharper Build i voilá! W Opcjach Resharpera -> Kompilacja - włącz kompilację Resharpera i w „Użyj wersji MSBuild.exe” wybierz „Ostatnio zainstalowane”
W ten sposób Resharper zbuduje projekty C # 6.0, a także nie podkreśli kodu C # 6.0 jako nieprawidłowego.
Używam tego również, chociaż mam Visual Studio 2015, ponieważ:
Kładę to tutaj, ponieważ od jakiegoś czasu szukałem rozwiązania tego problemu i być może pomoże to komuś innemu.
źródło
Wydaje się, że istnieje jakieś nieporozumienie. Zamiast próbować załatać VS2013 tutaj i odpowiedz od faceta Microsoftu: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-ever-be-support-by-vs-2013? Forum = roslyn
Przeczytaj więc i zainstaluj VS2015.
źródło