Zusammenfassung: Umbenennen und Verschieben in VS2019 mit Git, Beibehalten des Git-Verlaufs, Nutzung von R # ein wenig, automatische Aktualisierung der abhängigen Projektreferenz (wichtig für SLNs mit vielen Projekten, wir haben> 200)
Ich habe die folgenden Schritte ausgeführt, um C # -Projekte in Visual Studio 2019 umzubenennen und zu verschieben. Dieser Prozess verwendet R #, um Namespaces anzupassen. Der Git-Verlauf wird durch Ausführen eines "Git-MV" beibehalten (Vermeidung des Hinzufügens / Löschens des Verlaufs).
Zwei Phasen: 1) Benennen Sie das Projekt an Ort und Stelle um und 2) verschieben Sie das Projekt.
(Verwendet den Tipp von base2 zum Entladen von Projekten.)
Umbenennen
- VS | Projektmappen-Explorer | Klicken Sie mit der rechten Maustaste auf Projekt | Umbenennen (z. B. Utils.Foo in Foo).
- VS | Projektmappen-Explorer | Klicken Sie mit der rechten Maustaste auf Projekt | Eigenschaften | Ändern Sie die Felder Assembly-Name, Standard-Namespace und Assembly-Informationen
- Führen Sie 1 und 2 für das entsprechende Testprojekt aus (z. B. Utils.Foo.Tests).
- VS | Projektmappen-Explorer | Rechtsklick-Projekte (Produktion und Test) | Refactor | Namespaces anpassen
- XAML-Dateien, die das Projekt verwenden, müssen möglicherweise aktualisiert werden (manuell oder mit einer geeigneten globalen Suche und Ersetzung).
- Alle neu erstellen
- Verpflichten!! (um Änderungen vor dem Umzug zu übernehmen)
Hinweis: Der Ordner im Windows Explorer bleibt bis zu diesem Punkt der alte Name (z. B. Utils.Foo). Dies ist in den Verschiebungsschritten behoben.
Bewegung
Diese Methode: 1) behält den Git-Verlauf bei, 2) nutzt R #, um Namespaces atomar anzupassen, und 3) aktualisiert abhängige Projekte massenhaft (vermeidet mühsames manuelles Bearbeiten abhängiger sln- und csproj-Dateien).
Entladen Sie alle Projekte in der Lösung (damit das Entfernen des Zielprojekts keine Änderungen in abhängigen Projekten auslöst).
VS | Wählen Sie unter Lösung | alle Lösungsordner aus Klicken Sie mit der rechten Maustaste auf Projekte entladen
Verschieben Sie Ordner mit git (damit der Verlauf beibehalten wird)
a) Öffnen Sie die Developer Command Prompt für 2019
b) Git-Status (um zu veranschaulichen, „nichts zu begehen, Baum sauber zu arbeiten“)
c) git mv das Projekt zB git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
d) Git-Status zum Anzeigen / Überprüfen von Änderungen
- Entfernen Sie das Projekt
VS | Projektmappen-Explorer | Projekt auswählen | Rechtsklick | Entfernen (da alle Projekte entladen werden, werden die Verweise darauf in abhängigen Projekten NICHT entfernt)
- Fügen Sie das Projekt erneut hinzu (an der neuen Position in der Baumstruktur im Projektmappen-Explorer).
a) VS | Projektmappen-Explorer | Wählen Sie den übergeordneten Zielordner aus Rechtsklick | Hinzufügen | Bestehendes Projekt
- Laden Sie alle Projekte neu
WICHTIG: Stellen Sie sicher, dass * .csproj-Dateien für abhängige Projekte aktualisiert wurden.
(VS | Team Explorer | Änderungen | Doppelklicken Sie auf alle aufgelisteten abhängigen csproj | Inspizieren-Überprüfen der ProjectReference-Pfadänderung)
- Korrigieren Sie die Pfade in der einzelnen verschobenen * .csproj-Datei manuell
Verwenden Sie Notepad ++ (oder einen anderen Texteditor), um die Pfade zu korrigieren. Oft kann dies durch einfaches Suchen und Ersetzen erfolgen (z. B. ../../../../ bis ../../).
Dies wird aktualisiert ...
a) GlobalAssmeblyInfo.cs-Referenzen
b) Pfade zu Paketen
c) Pfade zu Diagrammdateien für die Abhängigkeitsüberprüfung
d) Pfade zu Regelsatzpfaden (z. B. <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- Schließen Sie die Lösung und öffnen Sie sie erneut (um die Projektreferenzen in einen guten Zustand zu bringen).
Alle speichern, Lösung schließen, ich bevorzuge es, bin- und obj-Ordner zu löschen, um den Verlauf zu bereinigen. Lösung erneut öffnen
- Bestätigen
a) VS | Team Explorer | Änderungen
i) sollte inszenierte Änderungen sehen, die die verschobenen Dateien anzeigen ii) sollte abhängige Projekte (* .csproj) sehen, die gut aktualisiert wurden Überprüfen Sie die csproj-Unterschiede und stellen Sie fest, dass die Pfade schön aktualisiert wurden !! (Dies ist die Magie, die es vermeidet, die csproj-Dateien mühsam manuell mit einem Texteditor zu aktualisieren.)
b) Überprüfen Sie im Windows Explorer, ob der alte Speicherort leer ist
c) Lösung reinigen, Lösung neu erstellen, Komponententests ausführen, Apps in sln starten.
- Verpflichten!!