Bagaimana cara "Menambahkan Item yang Ada" seluruh struktur direktori di Visual Studio?

765

Saya memiliki satu set file berdiri bebas yang tidak berafiliasi dengan proyek C # sama sekali yang berada dalam struktur direktori bersarang rumit.

Saya ingin menambahkan mereka dalam format itu ke direktori berbeda di aplikasi web ASP.NET yang saya kerjakan; sambil mempertahankan struktur yang sama. Jadi, saya menyalin folder ke lokasi target proyek saya dan saya mencoba "menambahkan item yang ada" hanya untuk kehilangan hierarki folder sebelumnya.

Biasanya saya telah membuat ulang direktori dengan tangan, disalin secara satu-ke-satu, dan kemudian menambahkan item yang ada. Ada terlalu banyak direktori / item dalam kasus ini.

Jadi, bagaimana Anda menambahkan direktori dan file yang ada di Visual Studio 2008?

Ian Patrick Hughes
sumber
44
Fakta bahwa ini tidak jelas bagi kebanyakan orang (termasuk saya) adalah bukti menyedihkan tentang Visual Studio.
Pete Alvin
22
@Pete Alvin Saya memiliki banyak perjanjian sedih tentang Visual Studio tetapi lebih menghargainya sekarang karena saya telah menghabiskan waktu dengan beberapa IDE lain di luar sana.
Freek Nortier
4
Visual studio tidak sempurna namun, saya telah menggunakan hampir setiap IDE yang tersedia. Jika itu yang terbaik. Eclipse bahkan tidak dekat, Xcode mungkin satu-satunya yang mendekati.
user1127081
2
@ user1127081: Saya harus yang kedua ini. Visual Studio cukup jauh dari sempurna, tetapi saya telah menggunakan hampir semua IDE lain untuk hampir setiap pengembangan dan menargetkan OS di luar sana dan semuanya jauh lebih buruk. Saya juga harus setuju bahwa Xcode jelas dan sejauh ini yang terbaik dari yang lain, tetapi menjadi begitu setelah disetujui banyak antara Xcode 3 dan Xcode 4. Eclipse hanyalah mimpi buruk.
Kaiserludi

Jawaban:

737

Seret file / folder dari Windows Explorer ke Solution Explorer. Itu akan menambahkan semuanya. Catatan ini tidak berfungsi jika Visual Studio dalam Mode Administrator, karena Windows Explorer adalah proses Mode Pengguna.

Darren Kopp
sumber
42
Ini tidak berhasil untuk saya. Itu hanya memberi saya ikon target penurunan yang tidak valid. Perlihatkan semua file di bawah berfungsi dengan baik
Cine
115
Di VS 2010, setelah draggin mendapat folder, pilih opsi untuk Tampilkan Semua File di proyek. File ada dalam bentuk "ghosted", klik kanan pada folder dan Sertakan dalam Proyek. Mereka kemudian akan ditambahkan
John Ptacek
10
@ JohnPtacek: Itu bekerja dalam sebuah proyek, tetapi tidak dalam solusi.
2
Jawaban ini tidak valid untuk VS2010 (Setidaknya sejauh yang saya tahu). Jawaban Tom pada 7/10/12 adalah solusi terbaik bagi saya di VS2010
BLSully
8
Bunuh explorer.exe menggunakan task manager, mulai sebagai administrator dan kemudian Anda dapat drag and drop ke Visual Studio bahkan jika itu berjalan sebagai Administrator.
xander
545

Aktifkan "Tampilkan Semua File" untuk proyek tertentu (Anda mungkin perlu menekan "Refresh" untuk melihatnya) **.

Folder / file yang bukan bagian dari proyek Anda tampak sedikit "lebih ringan" di pohon proyek.

Klik kanan folder / file yang ingin Anda tambahkan dan klik "Sertakan Dalam Proyek" . Ini akan secara rekursif menambah folder / file ke proyek.

** Tombol-tombol ini terletak di bilah alat Solution Explorer mini.

** Pastikan Anda TIDAK dalam mode debug.

Brannon
sumber
2
Tampaknya ini hanya berfungsi untuk file yang lebih dalam dari file proyek Anda, jika Anda menyimpan file proyek Anda sendiri di folder, ini tidak akan berfungsi.
Danny Parker
28
Ini hanya berfungsi dalam proyek individu, tetapi tidak dalam solusi.
7
Duh ... itu bukan tempat Anda seharusnya meletakkan file. Tentu saja itu tidak akan menemukan file di atas folder root Anda.
Bluebaron
3
Ini hanya akan berfungsi ketika Anda ingin folder yang Anda tambahkan berada di folder proyek Anda. Dalam kasus saya, saya ingin mereka berada di tempat lain (dibagi di antara proyek). Dalam XCode, menyeret struktur folder dari lokasi mana pun ke dalam struktur proyek mempertahankan struktur folder alih-alih meratakannya seperti VS. Sepertinya VS tidak memiliki fitur di sini.
Mattijs
9
tip - pastikan proyek dipilih, bukan solusinya - maka Anda dapat menampilkan semua!
niico
89

Di Solution Explorer:

  1. Klik Tampilkan Semua File (ikon kedua dari kiri di bagian atas Solution Explorer).
  2. Temukan folder yang ingin Anda tambahkan.
  3. Klik kanan dan pilih "Sertakan dalam Proyek"

Saya menggunakan ini untuk menginstal add-on seperti editor HTML dan browser file pihak ketiga.

Tom
sumber
16
Bagaimana ini berbeda dari jawaban Brannon dari 4 tahun sebelumnya?
ToolmakerSteve
7
Ini tidak membahas masalah asli yang merupakan folder Solusi . Ini juga telah dibahas sebelumnya.
user2864740
@ToolmakerSteve: Berbeda karena sama dengan solusi Gant dari ... 7 tahun sebelumnya. stackoverflow.com/questions/392473/…
Veverke
Sangat merekomendasikan solusi ini karena ini juga membantu ketika file csproj yang konflik telah diperiksa dan tfs mengabaikan konflik dan menimpa
John Demetriou
6
+1. Saya menemukan jawaban ini lebih bermanfaat daripada yang lain karena itu membuat (relatif) jelas bahwa Tampilkan Semua File adalah ikon , bukan entri pada menu konteks.
35

Saya hanya ingin menunjukkan bahwa dua solusi yang ditawarkan sebelumnya,

  • Seret dan lepas dari Windows Explorer
  • Tampilkan Semua File dan kemudian sertakan dalam proyek.

jangan lakukan apa yang diminta pertanyaan:

Termasuk dalam proyek sambil menjaga struktur direktori .

Setidaknya tidak dalam kasus saya (proyek C ++ / CLI Visual Studio 2013 pada Windows 7).

Di Visual Studio, setelah Anda kembali ke tampilan normal (bukan Tampilkan Semua File ), file yang Anda tambahkan semua tercantum di tingkat atas proyek.

Ya, pada disk mereka masih berada di tempat mereka berada, tetapi di Solution Explorer mereka longgar.

Saya tidak menemukan cara mengatasinya kecuali membuat ulang struktur direktori di Solution Explorer dan kemudian melakukan Tambahkan Item yang Ada di lokasi yang tepat.

ILIA BROUDNO
sumber
Saya melihat perilaku yang sama, VS2010, c ++.
Radim Cernej
Benar, juga di Visual Studio 2010. Bahkan tidak menambahkan file tanpa struktur direktori untuk saya, hanya file pertama dalam struktur folder itu dan bukan subfolder.
Jonas
2
Setuju, masih berbeda. Saya bertanya-tanya bagaimana perangkat lunak yang populer dan mahal seperti VS dapat kekurangan fitur seperti itu. Saya menganggap ini agak membingungkan untuk memiliki dua struktur yang berbeda namun serupa dalam solusi explorer dan windows explorer ...
Janis
12
Menggunakan 2015 di sini; masih tidak mempertahankan struktur folder. Tertegun.
Toby Deshane
Menggunakan 2015 Update 3, baru saja sukses dengan pendekatan dari Bannon dan Tom. Semua folder bersarang masuk seperti yang diharapkan.
John Hatton
22

Saya tidak segera memahami ini berdasarkan uraian ini, tetapi inilah yang akhirnya saya temukan:

  1. Aktifkan "Tampilkan Semua File" - ada ikon di bilah alat Solution Explorer
  2. Menggunakan Windows Explorer (bukan solusi explorer), pindahkan file Anda ke dalam struktur direktori tempat Anda ingin menyimpannya
  3. Klik "Refresh" juga di bilah alat Solution Explorer
  4. File yang Anda pindahkan harus terlihat "hantu" di struktur pohon Solution Explorer tempat Anda meletakkannya
  5. Klik kanan pada file atau folder hantu Anda dan klik "Sertakan dalam Proyek". Semua isi folder akan dimasukkan
Don Rule
sumber
2
Ini untuk folder solusi, bukan proyek.
StingyJack
Pembaruan: Tidak ada tombol "refres" di VS2019
Liu Hao
16

Di bawah ini adalah ikon untuk ' Tampilkan Semua File ', hanya untuk referensi mudah.

Masukkan deskripsi gambar di sini

Marvin Glenn Lacuna
sumber
13

Masukkan deskripsi gambar di sini

Klik di atas dalam lingkaran merah. Folder Anda akan muncul di Solution Explorer.

Klik kanan pada folder Anda -> Sertakan dalam proyek .

Manoj Kalluri
sumber
9

Anda dapat mengubah XML proyek Anda untuk menambahkan subfolder dan struktur yang ada secara otomatis ke dalam proyek Anda seperti "node_modules" dari NPM:

Ini untuk versi MSBuild / Visual Studio yang lebih lama

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

Untuk versi MSBuild / Visual Studio saat ini:

Masukkan saja ke dalam node xml:

<Project>
</Project>

Dalam hal ini ubah saja $ (MSBuildProjectDirectory) \ node_modules ke nama folder Anda.

Bjego
sumber
Yap, terkadang mengedit file proj *. * Akan membawa Anda ke tempat yang Anda tuju.
Chris O
1
Jadi maksudmu seseorang bisa membuat plugin untuk melakukan ini? Karena saya tidak menciptakan struktur folder dengan puluhan folder dengan tangan dalam xml
Spectraljump
Persis apa yang saya cari
Vitaliy Kalinin
5

Anda perlu meletakkan struktur direktori Anda di direktori proyek Anda. Dan kemudian klik ikon "Tampilkan Semua File" di bagian atas kotak alat Solution Explorer. Setelah itu, direktori yang ditambahkan akan ditampilkan. Anda kemudian harus memilih direktori ini, klik kanan, dan pilih "Sertakan dalam Proyek."

nader
sumber
1
Inilah yang disarankan oleh jawaban yang diterima dan salah satu komentar di bawahnya.
Kev
4

Inilah yang saya lakukan:

  1. Klik kanan pada solusi -> Tambah -> Situs Web yang Ada ...
  2. Pilih folder tempat situs web Anda berada. Hanya folder root situs tersebut.

Kemudian semuanya akan ditambahkan pada solusi Anda dari folder ke file, dan file di dalam folder tersebut.

Willy David Jr
sumber
4

Akhirnya, Visual Studio 2017 memungkinkan pengguna untuk mengimpor seluruh direktori dengan satu klik. Visual Studio 2017 memiliki fungsi baru "Buka Folder " yang memungkinkan membuka seluruh folder, bahkan tanpa perlu menyimpannya sebagai solusi. Kode sumber dapat diimpor menggunakan metode berikut.

  1. File Menu → Buka → * Folder ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

Bahkan mendukung pembangunan dan debugging proyek CMake.

Bawa basis kode C ++ Anda ke Visual Studio dengan "Buka Folder"

Naren
sumber
4

Sekarang ada ekstensi sumber terbuka di Marketplace yang tampaknya melakukan apa yang diminta OP:

Folder Ke Solusi Folder

folder-ke-solusi-folder

Jika tidak melakukan apa yang Anda inginkan, kode tersedia, sehingga Anda dapat memodifikasinya sesuai dengan skenario Anda.

HTH

Yann Duran
sumber
Ekstensi tidak berfungsi untuk saya pada versi VS 15.9.13 2017
Mateusz Migała
2

Trik rapi yang saya temukan adalah bahwa jika Anda pergi ke "Tambahkan yang sudah ada ...", Anda dapat menyeret folder dari dialog terbuka ke solusi Anda.

Saya memiliki Visual Studio untuk dibuka dalam Mode Admin secara otomatis, jadi ini solusi yang baik bagi saya karena saya tidak ingin harus membatalkannya hanya agar ini berfungsi.

Yatrix
sumber
1

Yang berhasil bagi saya adalah menyeret folder ke Visual Studio, lalu klik kanan folder dan pilih "Buka Folder di File Explorer". Kemudian pilih semua dan seret ke folder di Visual Studio.

Nick
sumber
0

Di Windows 7 Anda bisa melakukan hal berikut:

Klik kanan pada proyek Anda dan pilih "Tambah-> Item yang Ada". Dalam dialog yang muncul, telusuri ke direktori root yang ingin Anda tambahkan. Di sudut kanan atas Anda memiliki kotak pencarian. Ketik *.csatau *.cpp, apa pun jenis file yang ingin Anda tambahkan. Setelah pencarian selesai, pilih semua file, klik Tambah dan tunggu sebentar ...

pengguna1395598
sumber
5
Ini tidak mempertahankan struktur direktori - itu hanya meletakkan segala sesuatu di folder tempat Anda mengklik add.
Marc
0

Cara terbersih yang saya temukan untuk melakukan ini adalah membuat proyek Perpustakaan Kelas baru di folder target, dan mengarahkan kembali semua hasil build-nya di tempat lain. Itu masih menyisakan file .csproj duduk di folder itu, tetapi ia membiarkan Anda melihatnya di Visual Studio dan memilih file mana untuk dimasukkan dalam proyek Anda.

Jason Kester
sumber
-3

Ini menjengkelkan bahwa Visual Studio tidak mendukung ini secara asli, tetapi CMake dapat menghasilkan proyek Visual Studio sebagai solusi.

Selain itu, gunakan saja Qt Creator. Kemudian dapat mengekspor proyek Visual Studio.

lama12345
sumber