Zahlreiche Instanzen von VBCSCompiler.exe

Ich habe gerade Visual Studio Professional 2015 (14.0.23107.0) heruntergeladen und installiert. Als ich zum ersten Mal unsere Lösung (28 Projekte) öffnete und eine Build -> Rebuild-Lösung durchführte, kam meine Entwicklungsmaschine zu einem absoluten Crawl. Die CPU war zu 100% ausgelastet und der Build wurde nie abgeschlossen - auch nicht nach> 10 Minuten.

Ich habe den Windows Task-Manager geöffnet und festgestellt, dass> 10 VBCSCompiler.exe-Tasks ausgeführt werden. In Kombination haben diese Tasks der CPU mehr als 90% gesendet.

Keine Ahnung, warum so viele dieser Aufgaben ausgeführt werden? Gibt es eine Möglichkeit, dies zu verhindern?

Dies ist das, was ich am nächsten zu jemand anderem finden kann, der das gleiche Problem hat:https: //github.com/dotnet/roslyn/issues/279

Update (8/7)

-Hans Passant, toller Gedanke. Mein Manager hat mir diese Version (14.0.23107.0) zur Verfügung gestellt. Ist das die richtige Version für die "offizielle Veröffentlichung"? Ich habe keine der Pro-Release-Versionen von Visual Studio 2015 wissentlich installiert. Ich glaube, es gibt keine Beta-Bits.

-Kyle Trauberman, ich bin mit Umgebungsvariablen im Kontext von Visual Studio nicht so vertraut. aber ich lief naivset DisableRosyln=true in einem VS (und MSBuild) Eingabeaufforderungsfenster. Dies schien keine Auswirkungen zu haben. VBCSCompiler.exe wurde sofort nach dem Neustart von VS2015 angezeigt.

Ich habe meine VS2015-Installation repariert und einen Neustart durchgeführt. Das hat nicht geholfen.

Update Teil 2 (8/7) -Hans Passant, sehr beeindruckend schreibe auf !! Obwohl das Problem diesmal nicht aufgetreten ist, habe ich mir die Dinge angesehen, die Sie beschrieben haben:

as die Module angeht, die mit der VBCSCompiler.exe geladen wurden, habe ich Folgende

Es ist interessant, dass sich unsere .NET-Core-Assemblys in verschiedenen Versionen befinden. Du bist bei 4.06.79, während ich bei 4.06.81 bin.

Meine "clientseitigen DLLs" (in C: \ Programme (x86) \ MSBuild \ 14.0 \ Bin \ Microsoft.Build.Tasks.CodeAnalysis.dll) haben dieselbe Version und denselben Zeitstempel wie Ihre:

Ungewöhnlich sehe ich beim Betrachten des Codes in ILSpy etwas anderes - vielleicht eine Optimierung?

    private static NamedPipeClientStream TryAllProcesses(string pipeName, int timeoutMs, CancellationToken cancellationToken, out string newPipeName)
{
    string str = pipeName;
    int num = 1;
    while (File.Exists(string.Format("\\\\.\\pipe\\{0}", pipeName)))
    {
        NamedPipeClientStream result;
        if ((result = BuildClient.TryConnectToProcess(pipeName, timeoutMs, cancellationToken)) != null)
        {
            newPipeName = pipeName;
            return result;
        }
        pipeName = str + "." + num.ToString(CultureInfo.InvariantCulture);
        num++;
    }
    newPipeName = pipeName;
    return null;
}

** Lassen Sie mich auf das spezifische Argument pipname zurückkommen, das an die Instanzen von VBCSCompiler.exe übergeben wurde. Ich muss warten, bis es wieder passiert.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage