Come posso aggiungere un elemento esistente a un'intera struttura di directory in Visual Studio?


765

Ho una serie di file indipendenti non affiliati a nessun progetto C # che risiedono in una struttura di directory nidificata complicata.

Voglio aggiungerli in quel formato in una directory diversa in un'applicazione web ASP.NET su cui sto lavorando; pur mantenendo la stessa struttura. Quindi, ho copiato la cartella nella posizione di destinazione del mio progetto e ho cercato di "aggiungere un elemento esistente" solo per perdere la gerarchia di cartelle precedente.

Di solito ho ricreato le directory a mano, copiato su base uno a uno e quindi aggiunto elementi esistenti. Ci sono semplicemente troppe directory / voci in questo caso.

Quindi, come si aggiungono directory e file esistenti in Visual Studio 2008?


44
Il fatto che ciò non sia ovvio per la maggior parte delle persone (incluso me) è un triste testamento su Visual Studio.
Pete Alvin,

22
@Pete Alvin Ho molti tristi testamenti su Visual Studio, ma lo apprezzo di più ora che ho trascorso del tempo con alcuni degli altri IDE là fuori.
Freek Nortier,

4
Visual Studio non è perfetto, tuttavia ho usato quasi tutti gli IDE disponibili. Se è il migliore. Eclipse non è nemmeno vicino, Xcode è probabilmente l'unico che si avvicina.
user1127081,

2
@ user1127081: devo secondarlo. Visual Studio è abbastanza lontano dall'essere perfetto, ma ho usato praticamente ogni altro IDE praticamente per ogni sviluppo e sistema operativo di destinazione là fuori e sono tutti molto peggio. Devo anche essere d'accordo sul fatto che Xcode sia chiaramente e di gran lunga il migliore degli altri, ma è diventato così solo dopo aver approvato molto tra Xcode 3 e Xcode 4. Eclipse è solo un incubo.
Kaiserludi,

Risposte:


737

Trascina i file / le cartelle da Esplora risorse in Esplora soluzioni. Li aggiungerà tutti. Nota che non funziona se Visual Studio è in modalità amministratore, poiché Esplora risorse è un processo in modalità utente.


42
Questo non funziona per me. Mi dà solo l'icona di un bersaglio a caduta non valido. Lo spettacolo di tutti i file qui sotto funziona perfettamente però
Cine

115
In VS 2010, dopo che draggin ha ottenuto la cartella, scegliere l'opzione Mostra tutti i file nel progetto. I file esistono in forma "fantasma", fare clic con il tasto destro sulla cartella e Includi nel progetto. Verranno quindi aggiunti
John Ptacek,

10
@JohnPtacek: funziona in un progetto, ma non nella soluzione.

2
Questa risposta non è valida per VS2010 (almeno per quanto ne so). La risposta di Tom il 7/10/12 è stata la soluzione migliore per me in VS2010
BLSully

8
Uccidi explorer.exe usando il task manager, avvialo come amministratore e quindi puoi trascinarlo su Visual Studio anche se è in esecuzione come amministratore.
xander,

545

Abilita "Mostra tutti i file" per il progetto specifico (potrebbe essere necessario premere "Aggiorna" per vederli) **.

Le cartelle / i file che non fanno parte del progetto appaiono leggermente "più chiari" nella struttura del progetto.

Fare clic con il tasto destro del mouse sulle cartelle / file che si desidera aggiungere e fare clic su "Includi nel progetto" . Aggiungerà ricorsivamente cartelle / file al progetto.

** Questi pulsanti si trovano sulla barra degli strumenti di Mini Solution Explorer.

** Assicurati di NON essere in modalità debug.


2
Sembra che questo funzioni solo per file più profondi del tuo file di progetto, se mantieni il tuo file di progetto in una cartella a sé stante, questo non funzionerà.
Danny Parker,

28
Funziona solo in singoli progetti, ma non all'interno di una soluzione.

7
Duh ... non è lì che dovresti mettere i file. Ovviamente non troverà i file sopra la cartella principale.
Bluebaron,

3
Funzionerà solo quando vuoi che le cartelle che aggiungi vengano risiedute nella cartella del tuo progetto. Nel mio caso, voglio che siano altrove (condivisi tra progetti). In XCode, trascinando una struttura di cartelle da qualsiasi posizione nella struttura del progetto si preserva la struttura delle cartelle invece di appiattirla come VS. Sembra che VS non abbia una funzionalità qui.
Mattijs,

9
suggerimento: assicurati che il progetto sia selezionato, non la soluzione, quindi puoi mostrare tutto!
Niico,

89

In Esplora soluzioni:

  1. Fai clic su Mostra tutti i file (seconda icona a sinistra nella parte superiore di Esplora soluzioni).
  2. Individua la cartella che desideri aggiungere.
  3. Fare clic con il tasto destro e selezionare "Includi nel progetto"

Lo uso per installare componenti aggiuntivi come editor HTML e browser di file di terze parti.


16
In che modo differisce dalla risposta di Brannon di 4 anni prima?
ToolmakerSteve

7
Ciò non risolve il problema originale relativo a una cartella Soluzione . È stato anche precedentemente coperto.
user2864740

@ToolmakerSteve: è diverso in quanto è la stessa della soluzione di Gant di ... 7 anni prima. stackoverflow.com/questions/392473/...
Veverke

Consiglio vivamente questa soluzione poiché aiuta anche quando sono stati registrati file csproj in conflitto e tfs ignora i conflitti e sovrascrive
John Demetriou,

6
+1. Ho trovato questa risposta più utile delle altre perché rende (relativamente) chiaro che Mostra tutti i file è un'icona , non una voce nel menu contestuale.

35

Voglio solo sottolineare che due delle soluzioni offerte in precedenza,

  • Trascina selezione da Esplora risorse
  • Mostra tutti i file e quindi includili nel progetto.

non fare ciò che la domanda ha chiesto:

Includi nel progetto preservando la struttura della directory .

Almeno non nel mio caso (progetto C ++ / CLI Visual Studio 2013 su Windows 7).

In Visual Studio, una volta tornati nella visualizzazione normale (non Mostra tutti i file ), i file aggiunti vengono elencati tutti al livello superiore del progetto.

Sì, sul disco risiedono ancora dove si trovavano, ma in Esplora soluzioni sono allentati.

Non ho trovato un modo per aggirarlo, tranne ricreare la struttura di directory in Esplora soluzioni e quindi fare Aggiungi elementi esistenti nella posizione corretta.


Vedo lo stesso comportamento, VS2010, c ++.
Radim Cernej,

È vero, anche in Visual Studio 2010. Non aggiunge nemmeno i file senza una struttura di directory per me, solo il primo file all'interno di quella struttura di cartelle e non alcuna sottocartella.
Jonas,

2
D'accordo, differisce ancora. Mi chiedo come un software popolare e costoso come VS possa mancare di tale funzionalità. Ritengo piuttosto confuso avere due strutture diverse ma simili in Esplora soluzioni e Esplora risorse ...
Janis,

12
Usando il 2015 qui; non conserva ancora la struttura delle cartelle. Stordito.
Toby Deshane,

Utilizzando l'Update 3 2015, ho appena avuto successo con l'approccio di Bannon e Tom. Tutte le cartelle nidificate sono entrate come previsto.
John Hatton,

22

Non l'ho capito immediatamente sulla base di queste descrizioni, ma ecco cosa mi sono imbattuto finalmente:

  1. Attiva "Mostra tutti i file": nella barra degli strumenti di Esplora soluzioni è presente un'icona
  2. Utilizzando Esplora risorse (non Esplora soluzioni), sposta i tuoi file nella struttura di directory in cui desideri risiedere
  3. Fai clic su "Aggiorna" anche sulla barra degli strumenti Esplora soluzioni
  4. I file che hai spostato dovrebbero essere visibili "fantasma" nella struttura ad albero di Esplora soluzioni in cui li hai posizionati
  5. Fare clic destro su file o cartelle fantasma e fare clic su "Includi nel progetto". Verrà incluso tutto il contenuto di una cartella

2
Questo è per una cartella della soluzione, non un progetto.
StingyJack

Aggiornamento: non esiste un pulsante "aggiorna" in VS2019
Liu Hao,


13

Inserisci qui la descrizione dell'immagine

Fai clic sopra nel cerchio rosso. La cartella verrà visualizzata in Esplora soluzioni.

Fare clic con il tasto destro sulla cartella -> Includi nel progetto .


9

Puoi modificare l'XML del tuo progetto per aggiungere automaticamente sottocartelle e strutture esistenti al tuo progetto come "node_modules" da NPM:

Questo è per le versioni precedenti di MSBuild / Visual Studio

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

Per le attuali versioni di MSBuild / Visual Studio:

Basta inserirlo nei nodi dell'xml:

<Project>
</Project>

In questo caso basta cambiare $ (MSBuildProjectDirectory) \ node_modules nel nome della cartella.


Sì, a volte modificando a mano il file *. * Proj ti porterà dove vuoi andare.
Chris O,

1
Quindi stai dicendo che qualcuno potrebbe creare un plugin per farlo in batch? Perché non sto ricreando una struttura di cartelle con decine di cartelle a mano in un file XML
Spectraljump

Esattamente quello che stavo cercando
Vitaliy Kalinin,

5

È necessario inserire la struttura della directory nella directory del progetto. E quindi fai clic sull'icona "Mostra tutti i file" nella parte superiore della casella degli strumenti di Esplora soluzioni. Successivamente, verrà visualizzata la directory aggiunta. Sarà quindi necessario selezionare questa directory, fare clic con il tasto destro del mouse e selezionare "Includi nel progetto".


1
Questo è praticamente ciò che suggerisce la risposta accettata e uno dei commenti sotto di essa.
Kev,

4

Questo è ciò che faccio:

  1. Fare clic con il tasto destro del mouse sulla soluzione -> Aggiungi -> Sito Web esistente ...
  2. Scegli la cartella in cui si trova il tuo sito Web. Solo la cartella principale del sito.

Quindi tutto verrà aggiunto alla tua soluzione da cartelle a file e file all'interno di tali cartelle.


4

Alla fine, Visual Studio 2017 consente all'utente di importare un'intera directory con un solo clic. Visual Studio 2017 ha una nuova funzionalità "Apri cartella " che consente di aprire l'intera cartella, anche senza la necessità di salvarla come soluzione. Il codice sorgente può essere importato utilizzando i seguenti metodi.

  1. Menu FileApri → * Cartella ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

Supporta anche la creazione e il debug di progetti CMake.

Porta la tua base di codice C ++ su Visual Studio con "Apri cartella"


4

Ora esiste un'estensione open source nel Marketplace che sembra fare ciò che l'OP stava chiedendo:

Cartella nella cartella soluzione

Folder-to-soluzione-cartella

Se non fa esattamente quello che vuoi, il codice è disponibile, quindi puoi modificarlo per adattarlo al tuo scenario.

HTH


L'estensione non ha funzionato per me nella versione VS 15.9.13 2017
Mateusz Migała,

2

Un trucco che ho scoperto è che se vai su "Aggiungi esistente ...", puoi trascinare la cartella dalla finestra di dialogo aperta alla tua soluzione.

Devo che Visual Studio si apra automaticamente in modalità amministratore, quindi questa è stata una buona soluzione per me poiché non volevo annullarlo solo per farlo funzionare.


1

Quello che ha funzionato per me è stato trascinare la cartella in Visual Studio, quindi fare clic con il tasto destro del mouse sulla cartella e selezionare "Apri cartella in Esplora file". Quindi selezionare tutto e trascinarli nella cartella in Visual Studio.


0

In Windows 7 è possibile effettuare le seguenti operazioni:

Fare clic destro sul progetto e selezionare "Aggiungi-> Articolo esistente". Nella finestra di dialogo che appare, vai alla radice della directory che desideri aggiungere. Nell'angolo in alto a destra hai una casella di ricerca. Digita *.cso *.cpp, qualunque sia il tipo di file che desideri aggiungere. Al termine della ricerca, seleziona tutti i file, fai clic su Aggiungi e attendi qualche istante ...


5
Questo non mantiene la struttura delle directory - mette semplicemente tutto nella cartella in cui hai fatto clic su Aggiungi.
Marc,

0

Il modo più pulito che ho trovato per fare questo è creare un nuovo progetto Libreria di classi nella cartella di destinazione e reindirizzare tutto il suo output di build altrove. Lascia ancora un file .csproj in quella cartella, ma ti consente di vederlo in Visual Studio e scegliere quali file includere nel tuo progetto.


-3

È fastidioso che Visual Studio non lo supporti in modo nativo, ma CMake potrebbe generare il progetto Visual Studio come soluzione.

A parte questo, basta usare Qt Creator. Può quindi esportare un progetto di Visual Studio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.