2017-07-13 2 views
1

Lösung fehlt besteht aus 2 DLL-Bibliotheken, 1 Konsole App und 1 Web-App. Nur das letzte Projekt, das Web-Projekt, verwendet das NuGet-Paket Microsoft.Net.Compilers. Paket wurde jetzt auf Version 2.3.0 aktualisiert, was C# 7.1 und VB 15.3 bedeutet.Roslyn Compiler-Version für Projekte verwendet, die Microsoft.Net.Compiler

Quelle: Roslyn NuGet packages

Wie in 3 anderen Projekten nicht Microsoft.Net.Compilers NuGet-Paket installiert haben, was Roslyn Compiler und C# Version verwenden sie?

Ich benutze VS.Net 2017 15.2 mit .NET Framework 4.7, also würde ich raten, dass es C# 7.0, aber immer noch Microsoft.Net.Compilers in Version 2.2 sollte dort installiert werden, ist es aber nicht.

Antwort

5

Das Paket Microsoft.Net.Compilers überschreibt (durch Festlegen von Eigenschaften in Ihrer Projektdatei) die Standardversion von Roslyn, die in MSBuild/Visual Studio enthalten ist.

Regelmäßige Klassenbibliotheken, die nicht darauf verweisen, werden mit dem Roslyn-Build kompiliert, der in Ihrer Version von Visual Studio & MSBuild enthalten ist.

+1

Ich glaube nicht, dass das stimmt. Um beispielsweise den C# 7.1-Code vor einer Woche zu testen, habe ich dem Projekt eine Microsoft.Net.Compilers-Vorabversion hinzugefügt, die problemlos kompiliert werden konnte. Intellisense zeigte immer noch einen Fehler, aber der eigentliche Build funktionierte (und ebenso funktionierte es über die Befehlszeile). –

+0

@JonSkeet: Du hast Recht; bearbeitet. – SLaks

+0

Froh, dass ich nicht einfach irgendwie verwirrt worden war :) –

Verwandte Themen