Welche Bedeutung hat dieser Compiler? Ist es ein Muss oder könnte man darauf verzichten? Was ist der Zweck eines anderen Compilers oder ist es nur ein futuristisches Projekt? Ein kurzer Überblick wäre willkommen.
c#
asp.net-mvc
vb.net
nützlichBee
quelle
quelle
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
in v1.0.8 und darunter, so dass Sie es möglicherweise aus diesem Grund sehenMicrosoft.Net.Compilers
ist für veraltetMicrosoft.Net.Compilers.Toolset
.Antworten:
Der Sinn des Microsoft.Net.Compilers-Pakets besteht darin, dass die mit diesem Paket verteilten Compiler zum Kompilieren Ihres Projekts verwendet werden und nicht der Compiler, der mit .NET Framework oder Visual Studio geliefert wird. Der praktischste direkte Vorteil besteht darin, dass Ihre Projekte C # 6-Funktionen verwenden können und diese Projekte dann auf einem System erstellt werden können, auf dem kein C # 6-Compiler installiert ist, z. B. auf einem Server für kontinuierliche Integration, auf dem Sie keine Funktionen haben. Ich möchte nicht das vollständige Visual Studio 2015 installieren.
quelle
Derzeit haben Microsoft.Net.Compiler keinen Zweck. Dies ist ein NuGet-Paket, das veraltet ist und nach Visual Studio 16.5 nicht mehr produziert wird. Es gibt ein Nachfolgepaket mit dem Namen Microsoft.Net.Compilers.Toolset. Dieses Paket hat fast die gleiche Funktionalität wie Microsoft.Net.Compiler, funktioniert jedoch sowohl mit .NET Desktop- als auch mit .NET Core MSBuild-Instanzen.
Trotzdem ist Microsoft.Net.Compilers.Toolset nicht für den allgemeinen Gebrauch gedacht. Dieses Paket dient zwei spezifischen Verwendungszwecken:
Dieses Paket ist nicht für den allgemeinen langfristigen Verbrauch durch Kunden für ihren Bau gedacht. Ich verstehe, dass einige Kunden sich dafür entscheiden, aber eine solche Verwendung wird auch nicht unterstützt. Das Paket kann und wird regelmäßig Unterbrechungen verursachen, indem Abhängigkeiten von neuen Versionen von MSBuild oder Aufgaben / Zielen im .NET SDK übernommen werden.
Kunden, die neue Versionen des Compilers für ihre Builds verwenden möchten, werden stattdessen aufgefordert, eine der offiziellen Distributionen des Compilers zu verwenden:
Hinweis : Das Microsoft.Net.Compilers-Paket wurde vor einigen Jahren offiziell als Teil des Microsoft.CodeDom.Providers.DotNetCompilerPlatform-Pakets unterstützt, da es eine Abhängigkeit war. Ab Version 2.0 wurde die Abhängigkeit von Microsoft.Net.Compilers entfernt und steht nun als völlig unabhängiges Paket. Gleichzeitig haben wir Microsoft.Net.Compiler verworfen, da es dafür keine expliziten Anwendungsfälle mehr gibt.
Dies bedeutet, dass einige Kunden unerwartet Microsoft.Net.Compiler in ihrer Projektdatei finden, da diese nicht entfernt wurde, als Microsoft.CodeDom.Providers.DotNetCompilerPlatform die Abhängigkeit löschte. Der Rat für solche Kunden ist, einfach den Verweis auf das Paket zu löschen. Es wird nicht mehr benötigt.
quelle
Es ist ein Paket, das Open-Source-C # - und Visual Basic-Compiler mit Rich-Code-Analyse-APIs versorgt.
Auf github finden Sie umfangreiche Dokumentationen:
https://github.com/dotnet/roslyn
quelle
Wie bereits erwähnt, enthält es die .NET-Compiler für C # und VB.NET.
Ein interessanter Aspekt dieses Pakets ist, dass Sie einen bestimmten Build des Compilers für Ihr Projekt angeben können, einschließlich einer Version, die noch nicht mit Visual Studio ausgeliefert wurde.
Wir verwenden dies in https://github.com/dotnet/project-system , einer Open Source-Komponente von Visual Studio. Es ermöglicht uns, Vorabversionen des Compilers für Sprachfunktionen für Hundefutter zu verwenden, die vom mit VS gelieferten Compiler nicht unterstützt werden.
quelle