Wie füge ich eine vorhandene Verzeichnisstruktur in Visual Studio zu einem vorhandenen Element hinzu?

765

Ich habe einen freistehenden Satz von Dateien, die überhaupt keinem C # -Projekt zugeordnet sind und sich in einer komplizierten verschachtelten Verzeichnisstruktur befinden.

Ich möchte sie in diesem Format einem anderen Verzeichnis in einer ASP.NET-Webanwendung hinzufügen, an der ich arbeite. unter Beibehaltung der gleichen Struktur. Also habe ich den Ordner in den Zielspeicherort meines Projekts kopiert und versucht, ein vorhandenes Element hinzuzufügen, um die vorherige Ordnerhierarchie zu verlieren.

Normalerweise habe ich die Verzeichnisse von Hand neu erstellt, eins zu eins kopiert und dann vorhandene Elemente hinzugefügt. In diesem Fall gibt es einfach zu viele Verzeichnisse / Elemente.

Wie fügen Sie vorhandene Verzeichnisse und Dateien in Visual Studio 2008 hinzu?

Ian Patrick Hughes
quelle
44
Die Tatsache, dass dies für die meisten Menschen (einschließlich mich) nicht offensichtlich ist, ist ein trauriger Beweis für Visual Studio.
Pete Alvin
22
@Pete Alvin Ich habe viele traurige Testamente über Visual Studio, aber ich schätze es jetzt mehr, da ich Zeit mit einigen der anderen IDEs da draußen verbracht habe.
Freek Nortier
4
Visual Studio ist jedoch nicht perfekt, ich habe fast jede verfügbare IDE verwendet. Wenn ist das Beste. Eclipse ist nicht einmal nah, Xcode ist wahrscheinlich der einzige, der nahe kommt.
user1127081
2
@ user1127081: Ich muss dies unterstützen. Visual Studio ist alles andere als perfekt, aber ich habe so ziemlich jede andere IDE für so ziemlich jedes Entwicklungs- und Zielbetriebssystem verwendet, und sie sind alle verdammt viel schlimmer. Ich muss auch zustimmen, dass Xcode eindeutig und bei weitem das Beste vom Rest ist, aber es wurde erst so, nachdem es viel zwischen Xcode 3 und Xcode 4 genehmigt hat. Eclipse ist nur ein Albtraum.
Kaiserludi

Antworten:

737

Ziehen Sie die Dateien / Ordner aus dem Windows Explorer in den Projektmappen-Explorer. Es wird sie alle hinzufügen. Beachten Sie, dass dies nicht funktioniert, wenn sich Visual Studio im Administratormodus befindet, da Windows Explorer ein Benutzermodus ist.

Darren Kopp
quelle
42
Das funktioniert bei mir nicht. Es gibt mir nur das Symbol eines ungültigen Ablageziels. Die Show alle Dateien unten funktioniert aber perfekt
Cine
115
Wählen Sie in VS 2010, nachdem Draggin den Ordner erhalten hat, die Option Alle Dateien im Projekt anzeigen. Die Dateien sind in "Geister" -Form vorhanden. Klicken Sie mit der rechten Maustaste auf den Ordner und klicken Sie auf In Projekt einschließen. Sie werden dann hinzugefügt
John Ptacek
10
@ JohnPtacek: Das funktioniert in einem Projekt, aber nicht in der Lösung.
2
Diese Antwort gilt nicht für VS2010 (zumindest soweit ich das beurteilen kann). Toms Antwort am 10.07.12 war die beste Lösung für mich in VS2010
BLSully
8
Beenden Sie explorer.exe mit dem Task-Manager, starten Sie ihn als Administrator, und ziehen Sie ihn per Drag & Drop in Visual Studio, auch wenn es als Administrator ausgeführt wird.
Xander
545

Aktivieren Sie "Alle Dateien anzeigen" für das jeweilige Projekt (möglicherweise müssen Sie auf "Aktualisieren" klicken, um sie anzuzeigen) **.

Die Ordner / Dateien, die nicht Teil Ihres Projekts sind, werden im Projektbaum etwas "heller" angezeigt.

Klicken Sie mit der rechten Maustaste auf die Ordner / Dateien, die Sie hinzufügen möchten, und klicken Sie auf "In Projekt einschließen" . Es werden rekursiv Ordner / Dateien zum Projekt hinzugefügt.

** Diese Schaltflächen befinden sich in der Symbolleiste des Mini-Projektmappen-Explorers.

** Stellen Sie sicher, dass Sie sich NICHT im Debug-Modus befinden.

Brannon
quelle
2
Es scheint, dass dies nur für Dateien funktioniert, die tiefer liegen als Ihre Projektdatei. Wenn Sie Ihre Projektdatei in einem eigenen Ordner aufbewahren, funktioniert dies nicht.
Danny Parker
28
Dies funktioniert nur in einzelnen Projekten, nicht jedoch innerhalb einer Lösung.
7
Duh ... dort solltest du keine Dateien ablegen. Natürlich werden keine Dateien über Ihrem Stammordner gefunden.
Bluebaron
3
Dies funktioniert nur, wenn sich die hinzugefügten Ordner in Ihrem Projektordner befinden sollen. In meinem Fall möchte ich, dass sie woanders sind (zwischen Projekten geteilt). Wenn Sie in XCode eine Ordnerstruktur von einem beliebigen Speicherort in die Projektstruktur ziehen, bleibt die Ordnerstruktur erhalten, anstatt sie wie VS zu reduzieren. Anscheinend fehlt VS hier eine Funktion.
Mattijs
9
Tipp - Stellen Sie sicher, dass das Projekt ausgewählt ist, nicht die Lösung - dann können Sie alles zeigen!
Niico
89

Im Projektmappen-Explorer:

  1. Klicken Sie auf Alle Dateien anzeigen (zweites Symbol von links oben im Projektmappen-Explorer).
  2. Suchen Sie den Ordner, den Sie hinzufügen möchten.
  3. Klicken Sie mit der rechten Maustaste und wählen Sie "In Projekt einschließen".

Ich verwende dies, um Add-Ons wie HTML-Editoren und Dateibrowser von Drittanbietern zu installieren.

Tom
quelle
16
Wie unterscheidet sich das von Brannons Antwort von 4 Jahren zuvor?
ToolmakerSteve
7
Dies behebt nicht das ursprüngliche Problem, das für einen Lösungsordner gilt . Es wurde auch zuvor behandelt.
user2864740
@ToolmakerSteve: Es unterscheidet sich darin, dass es das gleiche ist wie Gants Lösung von ... 7 Jahre zuvor. stackoverflow.com/questions/392473/…
Veverke
Ich kann diese Lösung nur empfehlen, da sie auch hilft, wenn widersprüchliche csproj-Dateien eingecheckt wurden und tfs die Konflikte ignoriert und überschreibt
John Demetriou
6
+1. Ich fand diese Antwort hilfreicher als die anderen, da dadurch (relativ) deutlich wird, dass Alle Dateien anzeigen ein Symbol und kein Eintrag im Kontextmenü ist.
35

Ich möchte nur darauf hinweisen, dass zwei der zuvor angebotenen Lösungen

  • Drag & Drop aus dem Windows Explorer
  • Alle Dateien anzeigen und dann in das Projekt aufnehmen.

Tu nicht, worum es in der Frage geht:

In das Projekt aufnehmen und dabei die Verzeichnisstruktur beibehalten .

Zumindest nicht in meinem Fall (C ++ / CLI-Projekt Visual Studio 2013 unter Windows 7).

Sobald Sie in Visual Studio wieder in der normalen Ansicht sind (nicht Alle Dateien anzeigen ), werden die von Ihnen hinzugefügten Dateien alle auf der obersten Ebene des Projekts aufgelistet.

Ja, auf der Festplatte befinden sie sich immer noch dort, wo sie waren, aber im Projektmappen-Explorer sind sie lose.

Ich habe keinen Weg gefunden, es zu umgehen, außer die Verzeichnisstruktur im Projektmappen-Explorer neu zu erstellen und dann vorhandene Elemente an der richtigen Stelle hinzuzufügen .

ILIA BROUDNO
quelle
Ich sehe das gleiche Verhalten, VS2010, c ++.
Radim Cernej
Richtig, auch in Visual Studio 2010. Es werden für mich nicht einmal die Dateien ohne Verzeichnisstruktur hinzugefügt, sondern nur die allererste Datei innerhalb dieser Ordnerstruktur und keine Unterordner.
Jonas
2
Einverstanden, es unterscheidet sich immer noch. Ich frage mich, wie einer beliebten und teuren Software wie VS eine solche Funktion fehlen kann. Ich halte es für ziemlich verwirrend, zwei unterschiedliche, aber ähnliche Strukturen im Lösungs-Explorer und im Windows-Explorer zu haben ...
Janis
12
Verwenden Sie 2015 hier; Die Ordnerstruktur bleibt immer noch nicht erhalten. Betäubt.
Toby Deshane
Mit 2015 Update 3 hatte gerade Erfolg mit dem Ansatz von Bannon und Tom. Alle verschachtelten Ordner gingen wie erwartet ein.
John Hatton
22

Ich habe dies aufgrund dieser Beschreibungen nicht sofort verstanden, aber hier ist, worauf ich schließlich gestoßen bin:

  1. Aktivieren Sie "Alle Dateien anzeigen" - in der Symbolleiste des Projektmappen-Explorers befindet sich ein Symbol
  2. Verschieben Sie Ihre Dateien mit Windows Explorer (nicht mit Solution Explorer) in die Verzeichnisstruktur, in der sie sich befinden sollen
  3. Klicken Sie auch in der Symbolleiste des Projektmappen-Explorers auf "Aktualisieren"
  4. Die Dateien, die Sie verschoben haben, sollten in der Baumstruktur des Projektmappen-Explorers, in der Sie sie abgelegt haben, "gespenstisch" sichtbar sein
  5. Klicken Sie mit der rechten Maustaste auf Ihre Geisterdateien oder Ordner und klicken Sie auf "In Projekt einschließen". Der gesamte Inhalt eines Ordners wird eingeschlossen
Don Regel
quelle
2
Dies ist für einen Lösungsordner, nicht für ein Projekt.
StingyJack
Update: Es gibt keine "Auffrischung" Schaltfläche in VS2019
Liu Hao
16

Unten befindet sich das Symbol für " Alle Dateien anzeigen ", nur als Referenz.

Geben Sie hier die Bildbeschreibung ein

Marvin Glenn Lacuna
quelle
13

Geben Sie hier die Bildbeschreibung ein

Klicken Sie oben in den roten Kreis. Ihr Ordner wird im Projektmappen-Explorer angezeigt.

Klicken Sie mit der rechten Maustaste auf Ihren Ordner -> In Projekt einschließen .

Manoj Kalluri
quelle
9

Sie können Ihr Projekt-XML ändern, um vorhandene Unterordner und Strukturen wie "node_modules" von NPM automatisch zu Ihrem Projekt hinzuzufügen:

Dies gilt für ältere MSBuild / Visual Studio-Versionen

<ItemGroup>
   <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
</ItemGroup>

Für die aktuellen MSBuild / Visual Studio-Versionen:

Legen Sie es einfach in die Knoten der XML:

<Project>
</Project>

In diesem Fall ändern Sie einfach $ (MSBuildProjectDirectory) \ node_modules in Ihren Ordnernamen.

Bjego
quelle
Ja, manchmal bringt Sie die *. * Proj-Datei von Hand dahin, wo Sie hin möchten.
Chris O
1
Sie sagen also, jemand könnte ein Plugin erstellen, um dies zu tun? Weil ich keine Ordnerstruktur mit Dutzenden von Ordnern von Hand in einer XML-
Datei neu
Genau das, wonach ich gesucht habe
Vitaliy Kalinin
5

Sie müssen Ihre Verzeichnisstruktur in Ihr Projektverzeichnis einfügen. Klicken Sie oben in der Toolbox des Projektmappen-Explorers auf das Symbol "Alle Dateien anzeigen". Danach wird das hinzugefügte Verzeichnis angezeigt. Sie müssen dann dieses Verzeichnis auswählen, mit der rechten Maustaste klicken und "In Projekt einschließen" auswählen.

nader
quelle
1
Dies ist so ziemlich das, was die akzeptierte Antwort und einer der Kommentare darunter nahelegt.
Kev
4

Das ist was ich mache:

  1. Klicken Sie mit der rechten Maustaste auf Lösung -> Hinzufügen -> Bestehende Website ...
  2. Wählen Sie den Ordner, in dem sich Ihre Website befindet. Nur der Stammordner der Site.

Dann wird Ihrer Lösung alles hinzugefügt, von Ordnern zu Dateien und Dateien in diesen Ordnern.

Willy David Jr.
quelle
4

Mit Visual Studio 2017 kann der Benutzer endlich ein ganzes Verzeichnis mit einem einzigen Klick importieren. Visual Studio 2017 verfügt über eine neue Funktion "Ordner öffnen ", mit der der gesamte Ordner geöffnet werden kann, ohne dass er als Lösung gespeichert werden muss. Der Quellcode kann mit den folgenden Methoden importiert werden.

  1. Menü DateiÖffnen → * Folder ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

Es unterstützt sogar das Erstellen und Debuggen von CMake-Projekten.

Bringen Sie Ihre C ++ - Codebasis mit "Open Folder" nach Visual Studio.

Naren
quelle
4

Es gibt jetzt eine Open-Source-Erweiterung auf dem Marktplatz, die das zu tun scheint, wonach das OP gefragt hat:

Ordner zum Lösungsordner

Ordner-zu-Lösung-Ordner

Wenn es nicht genau das tut, was Sie wollen, ist der Code verfügbar, sodass Sie ihn an Ihr Szenario anpassen können.

HTH

Yann Duran
quelle
Erweiterung funktionierte nicht für mich auf Version VS 15.9.13 2017
Mateusz Migała
2

Ein netter Trick, den ich entdeckt habe, ist, dass Sie den Ordner aus dem geöffneten Dialogfeld in Ihre Lösung ziehen können, wenn Sie zu "Vorhandene hinzufügen ..." gehen.

Ich muss mein Visual Studio automatisch im Admin-Modus öffnen, daher war dies eine gute Problemumgehung für mich, da ich das nicht rückgängig machen wollte, um dies zum Laufen zu bringen.

Yatrix
quelle
1

Für mich hat es funktioniert, den Ordner in Visual Studio zu ziehen, dann mit der rechten Maustaste auf den Ordner zu klicken und "Ordner im Datei-Explorer öffnen" auszuwählen. Wählen Sie dann alle aus und ziehen Sie sie in den Ordner in Visual Studio.

Nick
quelle
0

In Windows 7 können Sie Folgendes tun:

Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Hinzufügen-> Vorhandenes Element". Navigieren Sie im angezeigten Dialogfeld zum Stammverzeichnis des Verzeichnisses, das Sie hinzufügen möchten. In der oberen rechten Ecke haben Sie ein Suchfeld. Geben Sie *.csoder ein *.cpp, unabhängig vom Dateityp, den Sie hinzufügen möchten. Wählen Sie nach Abschluss der Suche alle Dateien aus, klicken Sie auf Hinzufügen und warten Sie eine Weile ...

user1395598
quelle
5
Dadurch wird die Verzeichnisstruktur nicht beibehalten. Es wird lediglich alles in den Ordner verschoben, in dem Sie auf Hinzufügen geklickt haben.
Marc
0

Der sauberste Weg, dies zu tun, besteht darin, ein neues Klassenbibliotheksprojekt im Zielordner zu erstellen und die gesamte Build-Ausgabe an eine andere Stelle umzuleiten. Es verbleibt weiterhin eine .csproj-Datei in diesem Ordner, aber Sie können sie in Visual Studio anzeigen und auswählen, welche Dateien in Ihr Projekt aufgenommen werden sollen.

Jason Kester
quelle
-3

Es ist ärgerlich, dass Visual Studio dies nicht nativ unterstützt, aber CMake könnte das Visual Studio-Projekt als Workaround generieren.

Verwenden Sie ansonsten einfach Qt Creator. Anschließend kann ein Visual Studio-Projekt exportiert werden.

lama12345
quelle