Ich untersuche die Verwendung des Roslyn-Compilers innerhalb einer Visual Studio-Erweiterung (VSIX), die den VisualStudioWorkspace
verwendet, um vorhandenen Code zu aktualisieren.Roslyn: Wie man mehrere Projekte asynchron aktualisiert?
Stellen Sie sich vor, dass meine aktuelle Lösung 12 Projekte hat. Für jedes dieser Projekte mag ich:
- eine neue Code-Datei hinzufügen
- aktualisiert eine vorhandene Codedatei
ich über die Unveränderlichkeit dieser Objekte und als Proof-of-concept verstehen Ich habe ein Beispiel geschrieben, das die Änderungen am ersten Projekt, dann am zweiten Projekt und so weiter vornimmt.
Ich fragte mich dann, ob ich die Änderungen an jedem Projekt mit einer asynchronen Aufgabe vornehmen könnte, und wenn alle Aufgaben abgeschlossen sind (alle Projekte wurden aktualisiert), aktualisieren Sie die Lösung.
Zu diesem Zweck habe ich meine Proof-of-Concept geändert und bin in der Phase, in der ich jetzt 12 aktualisierte Projekte habe. Was mir nicht klar ist, ist, wie ich alle Änderungen wieder in meine aktuelle Lösung einfüge, so dass ich dann myWorkspace.TryApplyChanges(sln)
in einem einzigen Schritt aufrufen kann.