2009-08-06 15 views
1

Unsere Lösung hat mehrere (10+) C# -Projekte. Jeder hat einen Verweis auf die CAB-Erweiterungsbibliothek, wobei der Verweis auf die DLLs in den Freigabeordnern der Bibliothek verweist. Jedes Projekt hat zwischen vier und sieben solcher Referenzen.Wie kann ich Referenzen finden und ersetzen?

Wir möchten einige Änderungen an der Bibliothek vornehmen; Aber um die Änderungen zu debuggen, müssen wir eine Debug-Version der Bibliothek erstellen und darauf Bezug nehmen. Ich möchte die Projekte der Bibliothek zu unserer Lösung hinzufügen und jede der DLL-Referenzen zu einer Projektreferenz ändern.

Ist es möglich, die vorhandenen Referenzen zu suchen und zu ersetzen, oder muss ich das manuell machen?

Antwort

2

Es gibt keine solche Funktion in der VS IDE.

Da es sich bei einer .csproj-Datei jedoch lediglich um ein XML-Dokument handelt, ist es möglich, eine solche globale Suche zu erstellen und in einer Skriptform, z. indem Sie eine Datei ändern, um die Vorher- und Nachher-Zustände zu beobachten und dann sed über den Rest laufen zu lassen.

Für eine einmalige, bis zu dem Umfang des Schreibens eines Skripts, um das XML zu laden und die Substitutionen durch DOM-Manipulation zu machen ist wahrscheinlich übertrieben.

1

Werfen Sie einen Blick auf Jareds Antwort auf diese SO thread. Dieser Ansatz wird wahrscheinlich für Sie funktionieren.

0

Warum Sie nicht einfach ersetzen DLLs in Freigabe des Bibliotheksordner mit Debug-Version vorübergehend? Ich nehme an, dass Sie lokale Entwicklungsumgebung haben.

EDIT: Sie könnten: 1. alle Zeit mit Debug-Version der Bibliothek entwickeln 2. make Referenzen in * CSPROJ flexibler 3. make Dateisystempfad von Bibliotheksdateien flexibler

Auf Aktualisierung Punkt 3: Wenn der Pfad zu Ihrer Bibliothek dlls enthält "release" und wenn Debug und Release-Bibliothek Ordnerstruktur ist die gleiche als Änderung von Release könnte nur durch Umbenennen von Ordner "release" zu "release.original" und "debug" zu "Freisetzung".

Ich würde wahrscheinlich Option 1 wählen und alle Zeit mit Debug-Baugruppen entwickeln. Release-Build würde nur für abschließende Tests und Bereitstellung an Kunden verwendet. Debug- und Release-DLLs sind nicht so unterschiedlich.

+0

Es gibt tatsächlich mehrere solcher Ordner, und ich würde es nach jeder Änderung tun müssen, so würde es immer noch ein Schmerz sein. Ich habe die Frage aktualisiert. – Simon

Verwandte Themen