Frage

Machern jemand weiß, der ein gutes Werkzeug oder Programm, um eine Lösung oder ein Verzeichnis für alle Projekte zu befragen und Ihnen sagen, wo zirkuläre Referenzen sind und mögliche Kompilierung, um ..

Ich erinnere mich, man sieht eine Weile her, aber ich kann es nicht überall ..

War es hilfreich?

Lösung

NDepend ist ein ausgezeichnetes Werkzeug, das diese und noch viel mehr tun. Vielleicht ist es übertrieben für das, was Sie wollen, aber es gibt eine Testversion so einen Blick ...

Andere Tipps

Ich weiß, das ist eine späte Antwort, aber ich fand GraemeF und tsilb die Antworten mit beiden keine Abhängigkeit zwischen den beiden Baugruppen zeigten. Es sieht aus wie wenn Sie die Reihenfolge der Abhängigkeiten umkehren ( Assembly A Referenzen B , aber Sie schalten es auf B Referenzierung A ), lässt er die Abhängigkeit in der Build-Reihenfolge. Um dies zu lösen, öffnen Sie die Eigenschaften für Ihre Lösung Dialog, gehen Sie auf Allgemeine Eigenschaften, und dann Projektabhängigkeiten. Finden Sie die Assembly A und entfernen Sie die Abhängigkeit von Assembly B . Auf diese Weise können Sie die Referenz normalerweise hinzuzufügen.

Sie könnten den Abhängigkeitsbaum über System.Reflection jagen. Wie Sie den Baum zu bauen, wenn Sie einen Knoten hinzufügen, möchten Sie überprüfen, ob alle Eltern des Knotens das gleiche Projekt oder eine Baugruppe wie die sind Sie hinzufügen. Wenn das stimmt, eine Ausnahme, um den Benutzer werfen.

Werfen technische Ausnahmen wie diese sind in Ordnung, wenn die Benutzer die Menschen sein, die wissen, wie Montage Referenzen und Ausnahmen arbeiten - Menschen wie Entwickler:)

Wenn Sie Projekt Referenzen zwischen den Projekten in Ihrer Lösung die richtige Build-Reihenfolge von Visual Studio automatisch bestimmt werden (oder MSBuild). Dies bricht natürlich, wenn Sie Montage Referenzen verwenden .. Auch Visual Studio werden Sie vom Hinzufügen Kreis Projekt Referenzen stoppen.

Ich erbte eine gigantische Visual Studio-Lösung mit einem paar kreisförmigen Referenzweg. Ich schrieb einen LINQPad Skript, um die kreisförmige Referenzkette zu finden:

https://github.com/ronnieoverby /linqpad-utils/blob/master/Find%20circular%20references.linq

Meine Implementierung ist wahrscheinlich naiv, aber es funktionierte schnell vernünftig für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top