Meine aktuelle Lösung zum Umbenennen des Projektordners lautet:
- Entfernen Sie das Projekt aus der Lösung.
- Benennen Sie den Ordner außerhalb von Visual Studio um.
- Fügen Sie das Projekt erneut zur Lösung hinzu.
Gibt es einen besseren Weg?
Meine aktuelle Lösung zum Umbenennen des Projektordners lautet:
Gibt es einen besseren Weg?
Die einfachere Lösung lautet wie folgt:
Es gibt vier notwendige Schritte, aber sieben empfohlene. Am Ende des Tages ist das Projekt jedoch vollständig umbenannt. Technisch gesehen muss der Ordnername für das Projekt nicht mit dem Projekt selbst übereinstimmen, daher ist auch dieser Schritt optional, aber es kann verwirrend sein, wenn sie nicht übereinstimmen. Genauso gilt dies für die Assembly- und Namespace-Namen.
Alternativer Schritt 7: Öffnen Sie die SLN-Datei mit VS, ignorieren Sie die Warnungen (klicken Sie auf "OK"), wählen Sie das Projekt(e) im Lösungs-Explorer aus, drücken Sie F4, aktualisieren Sie den Dateipfad. Optionaler Schritt 0: Klicken Sie mit der rechten Maustaste auf die Lösung und benennen Sie sie um.
Dies hat für mich in Visual Studio Community 2017 funktioniert. Die akzeptierte Antwort hat nicht funktioniert (für mich); die Eigenschaft, die geändert werden musste, ist für mich schreibgeschützt und kann nicht im Eigenschaftendialog geändert werden.
In andersjanmyrs Antwort ist es einfacher, zuerst das Projekt umzubenennen.
Nachdem diese Schritte durchgeführt wurden, möchten Sie vielleicht auch andere Verweise auf Ihren alten Projektnamen umbenennen.
Aktualisieren Sie im Projekteigenschaften den Assembly-Namen und den Standardspeicherort.
Dadurch wird Folgendes in der Projektdatei aktualisiert...
SomeProjectName
SomeProjectName
...und der Fehler "Namespace entspricht nicht dem Dateispeicherort, sollte sein: 'SomeProjectName'" wird beseitigt.
Benennen Sie Ihren Root-Namespace um (falls Sie ReSharper haben, klicken Sie mit der rechten Maustaste auf das Namespace und gehen Sie zu Umbenennen).
Ändern Sie alle Vorkommen Ihres alten Projektnamens in AssemblyInfo.cs.
Basierend auf dieser Antwort können Sie die Lösungsdatei manuell bearbeiten, damit der Pfad zum Projekt Ihr neuer Pfad ist und Warnungen beim Öffnen der Lösung vermieden werden. Sie können wahrscheinlich auf Projekt>Eigenschaften>AssemblyInfo klicken, um die Assembly-Informationen innerhalb von VS zu bearbeiten und das Bearbeiten der Datei AssemblyInfo.cs zu vermeiden.
Für diejenigen, die Visual Studio + Git verwenden und den Dateiverlauf beibehalten möchten (funktioniert beim Umbenennen von Projekten und/oder Lösungen):
Schließen Sie Visual Studio
Duplizieren Sie in der .gitignore-Datei alle Ignorierpfade des Projekts, das Sie umbenennen möchten, mit umbenannten Versionen dieser Pfade.
Verwenden Sie den Git move-Befehl wie folgt:
git mv
Weitere Optionen finden Sie in der Dokumentation: https://git-scm.com/docs/git-mv
In Ihrer .sln-Datei: Suchen Sie die Zeile, die Ihr Projekt definiert, und ändern Sie den Ordnernamen im Pfad. Die Zeile sollte ungefähr so aussehen:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "", "\.csproj"
Öffnen Sie Visual Studio, und klicken Sie mit der rechten Maustaste auf das Projekt → Umbenennen
Benennen Sie anschließend die Namespaces um.
Ich habe gelesen, dass ReSharper einige Optionen dafür bietet. Aber ein einfaches Suchen/Ersetzen hat bei mir funktioniert.
Entfernen Sie alte .gitignore-Pfade.
Super! Müde von all den manuellen Umbenennungen, die ich in der Vergangenheit machen musste. Funktioniert gut. Habe jedoch keinen Zeichenfolgenverweis in einem anderen Paket gefunden. Bin mir nicht sicher, ob das beabsichtigt ist.
Thx. aber ich habe den folgenden Satz nicht verstanden: "Zeichenfolgenreferenz in einem anderen Paket". Kannst du es erklären?
Also habe ich ein Testprojekt und dort habe ich [assembly: InternalsVisibleTo("MeineTests")]
. Als ich MeineTests
umbenannt habe, wurde diese Referenz nicht umbenannt. Ich glaube nicht, dass dies in Ihren Zuständigkeitsbereich fällt und es ist leicht manuell zu lösen.
Ich musste das selbst machen (unter Verwendung von Visual Studio 2010). Wie bereits von einigen Leuten beantwortet, scheint der einfachste Schritt zu sein:
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Ich werde das nicht als Antwort einfügen, weil du es nicht tun solltest, aber wenn du eine Agent Ransack-Suche nach dem Projektnamen durchführst und alle Verweise darauf durch den neuen Dateinamen ersetzt, funktioniert es, wenn du alle Ordner und Unterordner einschließt und sowohl Dateinamen umbenennst als auch Texte innerhalb von Dateien ersetzt. Ich habe es schon mehrmals gemacht, nie mit mehr als ein paar Minuten Aufräumarbeiten danach.
0 Stimmen
Für VS 2019, wenn Ihr Projekt läuft, können Sie den Ordner nicht umbenennen (der Rechtsklick Ihrer Maus auf dem Ordner zeigt die Option "Umbenennen" nicht an). Beenden Sie den laufenden Prozess und versuchen Sie es erneut.
8 Stimmen
Es gibt keine einfache, ein-Klick -Möglichkeit, dies zu tun. Zumindest nicht von innerhalb von Visual Studio.
0 Stimmen
Im Lösung von andersjanmyr: können Sie Alt + Enter drücken, um die Eigenschaftsansicht für das nicht verfügbare Projekt aufzurufen und dort die Eigenschaft "Dateipfad" festzulegen; da sie nicht im Kontextmenü des nicht verfügbaren Projekts (in Visual Studio 2008) verfügbar ist.
0 Stimmen
Diese Antwort enthält das Verfahren für TFS und ist die insgesamt beste Antwort, die ich dazu gefunden habe: stackoverflow.com/a/10853509/10245
1 Stimmen
@Marco das ändert nur den Projektname in VS, nicht den Projektmappennamen. Das habe ich gemacht und jetzt ist mein Projektname anders, aber der Projektmappenname ist immer noch derselbe, noch verwirrender. Seit 2019 musste ich auch das Projekt aus der Lösung entfernen, den Ordner umbenennen und dann das Projekt wieder hinzufügen.
0 Stimmen
Mit VS 2019 war es super einfach für mich! Habe das Projekt einfach in VS umbenannt und dann die alte Referenz in .sln in Notepad aktualisiert, danach habe ich den Projektmappennamen im Verzeichnis umbenannt. Das war es. Ich nutze git, es hat bereits die Änderungen erfasst (um old_Folder aus dem Repository zu entfernen und new_Folder in ausstehende Änderungen hinzuzufügen. Es hat einfach gut funktioniert für mich. Nur für den Fall, dass etwas schief geht, können Sie dies in einem separaten Branch ausprobieren, um nichts durcheinander zu bringen.
0 Stimmen
Beim Betrachten der 3 am höchsten bewerteten Antworten sehe ich, dass sie alle Bearbeitungen beinhalten. Ich bevorzuge Antworten, die keine Bearbeitungen beinhalten. Wenn Sie es vorziehen, nicht zu bearbeiten, könnte Ihre Methode sogar im Jahr 2021 die beste sein.
0 Stimmen
Sehr seltsam, es handelt sich um ein fehlendes Feature… :/
0 Stimmen
Ja, benenne es zunächst korrekt
0 Stimmen
.Net 6 mit VS2022, probiere diese Antwort: stackoverflow.com/a/72025102/4393351