Jakie jest znaczenie tego kompilatora? Czy to musi mieć, czy może się obejść bez? Jaki jest cel posiadania innego kompilatora, czy jest to tylko futurystyczny projekt? Przydałby się krótki przegląd.
c#
asp.net-mvc
vb.net
przydatne
źródło
źródło
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
w wersji 1.0.8 i niższych, więc możesz ją zobaczyć z tego powoduMicrosoft.Net.Compilers
jest przestarzały na korzyśćMicrosoft.Net.Compilers.Toolset
.Odpowiedzi:
Celem pakietu Microsoft.Net.Compilers jest to, że kompilatory dystrybuowane z tym pakietem będą używane do kompilowania projektu, a nie kompilator dostarczany z .NET Framework lub Visual Studio. Najbardziej praktyczną bezpośrednią korzyścią jest to, że pozwala projektom korzystać z funkcji C # 6, a następnie umożliwia budowanie tych projektów w systemie, który nie ma zainstalowanego kompilatora C # 6, na przykład na serwerze ciągłej integracji, na którym nie ma Chcesz zainstalować pełną wersję Visual Studio 2015.
źródło
Obecnie Microsoft.Net.Compilers nie ma żadnego celu. To jest pakiet NuGet, który jest przestarzały i przestanie być tworzony po Visual Studio 16,5. Istnieje pakiet będący następcą o nazwie Microsoft.Net.Compilers.Toolset. Ten pakiet ma prawie taką samą funkcjonalność jak Microsoft.Net.Compilers, ale działa zarówno z wystąpieniami .NET Desktop, jak i .NET Core MSBuild.
Mimo to Microsoft.Net.Compilers.Toolset nie jest przeznaczony do ogólnego użytku. Ten pakiet służy do dwóch konkretnych zastosowań:
Ten pakiet nie jest przeznaczony do ogólnego, długoterminowego użytku przez klientów. Rozumiem, że niektórzy klienci decydują się to zrobić, ale takie użycie również nie jest obsługiwane. Pakiet może i będzie regularnie powodować przerwy, przyjmując zależności od nowych wersji programu MSBuild lub zadań / obiektów docelowych w zestawie .NET SDK.
Klienci, którzy chcą używać nowych wersji kompilatora do swoich kompilacji, są zamiast tego zachęcani do korzystania z jednej z oficjalnych dystrybucji kompilatora:
Uwaga : pakiet Microsoft.Net.Compilers był oficjalnie obsługiwany jako część pakietu Microsoft.CodeDom.Providers.DotNetCompilerPlatform kilka lat temu, ponieważ był zależnością. Począwszy od wersji 2.0, chociaż zależność od Microsoft.Net.Compilers została usunięta i obecnie jest to całkowicie niezależny pakiet. Jednocześnie przeszliśmy do przestarzałego Microsoft.Net.Compilers, ponieważ nie ma już żadnych jawnych przypadków użycia dla niego.
Oznacza to, że niektórzy klienci nieoczekiwanie znajdują się w pliku projektu z Microsoft.Net.Compilers, ponieważ nie został on usunięty, gdy Microsoft.CodeDom.Providers.DotNetCompilerPlatform porzucił zależność. Rada dla takich klientów polega po prostu na usunięciu odniesienia do pakietu. Nie jest już potrzebne.
źródło
Jest to pakiet, który zapewnia kompilatory C # i Visual Basic typu open source z interfejsami API do zaawansowanej analizy kodu.
Obszerną dokumentację można znaleźć na github:
https://github.com/dotnet/roslyn
źródło
Jak powiedzieli inni, zawiera kompilatory .NET dla C # i VB.NET.
Ciekawym aspektem tego, że jest to pakiet, jest to, że możesz określić konkretną kompilację kompilatora dla swojego projektu, w tym wersję, która nie została jeszcze dostarczona z programem Visual Studio.
Używamy tego w https://github.com/dotnet/project-system, który jest składnikiem open source programu Visual Studio. Pozwala nam to na używanie przedpremierowych wersji kompilatora do testowania funkcji języka, które nie są obsługiwane przez kompilator dostarczany z VS.
źródło