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ń:
- Działa jako narzędzie krótkoterminowe do odblokowywania klientów, którzy natrafili na błędy w kompilatorze. W przypadku takich klientów możemy użyć tego pakietu do odblokowania ich scenariuszy zaledwie godzinę po scaleniu poprawki z repozytorium Roslyn. Służy to jako pomost, dopóki poprawka nie trafi do skojarzonej wersji obsługi programu Visual Studio lub .NET SDK. W takim przypadku klient jest proszony o usunięcie pakietu ze swojego rozwiązania i poleganie na oficjalnie wydanych zestawach narzędzi.
- Służy jako mechanizm do przenoszenia plików binarnych między Roslyn a oficjalnymi wersjami pakietu .NET SDk.
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:
- Użyj jednostki SKU narzędzi kompilacji programu Visual Studio.
- Użyj zestawu .NET SDK
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.
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
w wersji 1.0.8 i niższych, więc możesz ją zobaczyć z tego powodu