Verschieben Sie alle .cpp & .h in einem Filter auf ein anderes Projekt UND korrigieren Sie den Speicherort ihres Ordners

8

Hier ist Filter meines Projekts in Visual Studio, das im Projektmappen-Explorer angezeigt wird: -

%Vor%

(Im echten Fall enthalten alle Filter viele Sub-Sub-Filter und Dateien.)

Frage

Gewusst wie:

  • verschiebe alle .h und .cpp Dateien ( B und C ) in myFilter02 auf ProjectName2 's Ordner (z. B. D:\ProjectName2 )
  • ändert nicht das Aussehen des Filters (z. B. C muss immer noch in subFilter2_1\subFilter2_2 sein)
  • und tun Sie es mit ein paar Klicks (d. h. nicht abhängig von der Anzahl der Dateien / Sub-Filter), also O(1)

Hier ist das erwartete Ergebnis: -

%Vor%

Es kann manuell für jeden Sub-Sub-Sub-Filter gemacht werden + bestehende Dateien hinzufügen, aber es ist sehr mühsam.

Ich habe versucht, mit der rechten Maustaste auf den Filter / die Dateien zu klicken, habe diese Funktion aber nicht gefunden.
Ich verwende derzeit keine Quellcodeverwaltung / Repository von Microsoft (nur für den Fall, dass es verwandt ist).

Hinweis: Der normale Drag & amp; Drop auf Filter Verschieben Sie die Dateien nicht in den Ordner eines anderen Projekts .
Es macht die verschobenen Dateien nur zu einer Verknüpfung des ursprünglichen Speicherorts ( D:\ProjectName1\ ).

Schnelltaste? Plugin? Skript?
Muss ich wirklich ein Programm erstellen, um diese spezifische Sache zu tun?

Ein paar Tage nach der Frage, ich habe es mit C ++ mit RapidXML ~ 500-1000 Zeilen codiert.
Ich muss .vcxproj.filters und .vcxproj beider Projekte bearbeiten und einige Systemdateien verschieben.
Ich finde jedoch immer noch keine Antwort auf die Frage.

Bearbeiten

(Nach erhalten von Hans Passant und Prab beraten, danke!)
Ich möchte aus folgenden Gründen einen Filter anstelle eines Ordners verwenden: -

  • Die Quellcodeverwaltung ist einfacher, da sich alle Quelldateien in demselben Verzeichnis befinden.
  • In Visual Studio kann ich Dateien um verschiedene Filter leichter verschieben als um Ordner .
  • Mit Filter muss ich #include "../myFilter01/K.h" nicht verlängern oder zusätzliche Include-Verzeichnisse für jeden Ordner hinzufügen. Ich kann einfach #include "K.h" .
  • Wenn ich den Speicherort einer Datei in einem Filter ändere, muss ich sie nicht umgestalten.
    Wenn ich den Ordner ändere, muss ich den Code umgestalten.
  • Ich kann sehr seltsame Zeichen verwenden, z. =◆██myFilter01██◆= für Filter, aber nicht für Ordner. Es ist mein Geschmack.

Ich möchte nicht

  • Ordner statt Filter verwenden: Neben der Schwierigkeit, viele Ordner neu zu erstellen und meine .cpp/.h -Dateien manuell zu verschieben, erleide ich die oben genannten Nachteile.
  • Benutze einen Ordner mit der gleichen Struktur wie der Filter: Ich muss es manuell synchron halten (immer - langwierig). Ich werde immer noch die oben genannten Nachteile bekommen.

Zusammenfassend führt die Verwendung von Ordner anstelle von Filter zu mehr neuen Problemen als die Lösung.

    
javaLover 23.03.2017, 05:41
quelle

1 Antwort

0

Es ist keine Ein-Klick-Lösung, aber es könnte schneller als manuell durchgeführt werden.

  1. Finden Sie heraus, welche Datei kopiert werden muss. Um dies zu tun, verschiebt Filter von einem Projekt zum anderen. Wechseln Sie dann in die Verzeichnisansicht (alle Dateien anzeigen) für das erste Projekt und kopieren Sie die Dateien mit dem kleinen roten Indikator (Dateien, die nicht im Projekt enthalten sind). Kehren Sie jetzt zur Filteransicht für das Projekt zurück und verschieben Sie die Filter zurück zum ersten Projekt. Danach wechseln Sie beide Projekte in die Verzeichnisansicht und geben das zweite Projekt weiter.

  2. Jetzt müssen wir korrekte Filter erstellen. Verschieben Sie Dateien aus Quell- und Headerfilter in andere Filter im zweiten Projekt. Entladen Sie beide Projekte. Öffnen Sie das erste und das zweite Projekt .filters files kopieren von der ersten Datei in die Sekunde aller Filter-Tags außer "Source Files", "Header Files", "Resource Files". Als Nächstes aus der zweiten Datei entfernen Sie alle Tags, die mit Source oder Header gestartet wurden. Ab der zweiten ItemGroup kopieren Sie den gesamten Inhalt und übergeben ihn an die zweite ItemGroup. Speichere die zweite Datei.

  3. In diesem Punkt sollten Sie eine Kopie des ersten Projektfilterbaums haben, ohne unnötige Dateien, verschieben Sie jetzt einfach, was Sie korrigieren möchten.

Es ist hilfreich, einen einzelnen Baum im ersten Projekt zu erstellen.

    
Logman 01.04.2017 05:09
quelle

Tags und Links