ฉันจะ“ เพิ่มรายการที่มีอยู่” โครงสร้างไดเรกทอรีทั้งหมดใน Visual Studio ได้อย่างไร


765

ฉันมีชุดไฟล์ยืนที่ไม่มีส่วนเกี่ยวข้องกับโครงการ C # ใด ๆ ที่อยู่ในโครงสร้างไดเรกทอรีที่ซ้อนกันที่ซับซ้อน

ฉันต้องการเพิ่มพวกเขาในรูปแบบนั้นไปยังไดเรกทอรีอื่นในแอปพลิเคชันเว็บ ASP.NET ที่ฉันกำลังทำงาน ในขณะที่ยังคงโครงสร้างเดิม ดังนั้นฉันจึงคัดลอกโฟลเดอร์ไปยังที่ตั้งเป้าหมายของโครงการและฉันพยายาม“ เพิ่มรายการที่มีอยู่” เพียงเพื่อสูญเสียลำดับชั้นของโฟลเดอร์ก่อนหน้า

โดยปกติฉันจะสร้างไดเรกทอรีใหม่ด้วยมือคัดลอกข้ามแบบหนึ่งต่อหนึ่งจากนั้นเพิ่มรายการที่มีอยู่ ในกรณีนี้มีไดเรกทอรี / รายการมากเกินไป

ดังนั้นคุณจะเพิ่มไดเรกทอรีและไฟล์ที่มีอยู่ใน Visual Studio 2008 ได้อย่างไร


44
ความจริงที่ว่าไม่ชัดเจนสำหรับคนส่วนใหญ่ (รวมถึงฉัน) เป็นข้อพิสูจน์ที่น่าเศร้าเกี่ยวกับ Visual Studio
Pete Alvin

22
@ Pet Alvin ฉันมี Testaments ที่น่าเศร้ามากมายเกี่ยวกับ Visual Studio แต่ขอบคุณมากตอนนี้ที่ฉันได้ใช้เวลากับ IDE อื่น ๆ ที่อยู่ตรงนั้น
Freek Nortier

4
Visual studio ยังไม่สมบูรณ์แบบฉันใช้ IDE ทุกตัวที่มีอยู่ หากดีที่สุด Eclipse ยังไม่ใกล้เคียง Xcode น่าจะเป็นคนเดียวที่เข้ามาใกล้
user1127081

2
@ user1127081: ฉันต้องทำตามนี้ Visual Studio นั้นค่อนข้างห่างไกลจากความสมบูรณ์แบบ แต่ฉันได้ใช้ IDE อื่น ๆ เพื่อการพัฒนาและระบบปฏิบัติการเป้าหมายมากและพวกมันก็แย่กว่ามาก ฉันต้องยอมรับด้วยว่า Xcode นั้นชัดเจนและดีที่สุดในส่วนที่เหลือ แต่มันก็เป็นเช่นนั้นหลังจากที่มันได้รับการอนุมัติมากมายระหว่าง Xcode 3 และ Xcode 4 Eclipse เป็นฝันร้าย
Kaiserludi

คำตอบ:


737

ลากไฟล์ / โฟลเดอร์จาก Windows Explorer ไปยัง Solution Explorer มันจะเพิ่มพวกเขาทั้งหมด หมายเหตุสิ่งนี้ไม่ทำงานหาก Visual Studio อยู่ในโหมดผู้ดูแลระบบเนื่องจาก Windows Explorer เป็นกระบวนการของโหมดผู้ใช้


42
มันไม่ได้ผลสำหรับฉัน มันทำให้ฉันเห็นไอคอนของเป้าหมายการวางที่ไม่ถูกต้อง การแสดงไฟล์ทั้งหมดด้านล่างใช้งานได้อย่างสมบูรณ์แบบ
Cine

115
ใน VS 2010 หลังจาก draggin ได้รับโฟลเดอร์ให้เลือกตัวเลือกเพื่อแสดงไฟล์ทั้งหมดในโครงการ ไฟล์ที่มีอยู่ในรูปแบบ "โกสต์" คลิกขวาที่โฟลเดอร์และรวมในโครงการ พวกเขาจะถูกเพิ่มเข้ามา
John Ptacek

10
@JohnPtacek: ใช้งานได้ในโครงการ แต่ไม่ได้แก้ปัญหา

2
คำตอบนี้ไม่ถูกต้องสำหรับ VS2010 (อย่างน้อยที่สุดเท่าที่ฉันสามารถบอกได้) คำตอบของทอมในวันที่ 7/10/12 เป็นทางออกที่ดีที่สุดสำหรับฉันใน VS2010
BLSully

8
กำจัด explorer.exe โดยใช้ตัวจัดการงานเริ่มต้นเป็นผู้ดูแลระบบจากนั้นคุณสามารถลากและวางไปยัง Visual Studio แม้ว่าจะทำงานในฐานะผู้ดูแลระบบก็ตาม
แซ

545

เปิดใช้งาน"แสดงไฟล์ทั้งหมด"สำหรับโครงการเฉพาะ (คุณอาจต้องกด "รีเฟรช" เพื่อดูไฟล์) **

โฟลเดอร์ / ไฟล์ที่ไม่ได้เป็นส่วนหนึ่งของโครงการของคุณจะปรากฏ "จางลง" เล็กน้อยในแผนผังโครงการ

คลิกขวาที่โฟลเดอร์ / ไฟล์ที่คุณต้องการที่จะเพิ่มและคลิก"รวมในโครงการ" มันจะเพิ่มซ้ำโฟลเดอร์ / ไฟล์ในโครงการ

** ปุ่มเหล่านี้อยู่บนแถบเครื่องมือขนาดเล็ก Explorer โซลูชัน

** ตรวจสอบให้แน่ใจว่าคุณไม่ได้อยู่ในโหมดแก้ไขข้อบกพร่อง


2
ดูเหมือนว่าจะใช้งานได้เฉพาะไฟล์ที่ลึกกว่าไฟล์โครงการของคุณหากคุณเก็บไฟล์โครงการไว้ในโฟลเดอร์ด้วยตัวเองมันจะไม่ทำงาน
Danny Parker

28
สิ่งนี้ใช้ได้เฉพาะในแต่ละโครงการ แต่ไม่ได้อยู่ในโซลูชัน

7
อืม ... นั่นไม่ใช่ที่ที่คุณควรใส่ไฟล์ แน่นอนว่ามันจะไม่ค้นหาไฟล์เหนือโฟลเดอร์รูทของคุณ
Bluebaron

3
สิ่งนี้จะใช้ได้เมื่อคุณต้องการให้โฟลเดอร์ที่คุณเพิ่มอยู่ในโฟลเดอร์โครงการของคุณ ในกรณีของฉันฉันต้องการให้พวกเขาอยู่ที่อื่น (แชร์ระหว่างโครงการ) ใน XCode การลากโครงสร้างโฟลเดอร์จากตำแหน่งใด ๆ ลงในโครงสร้างโครงการจะเก็บรักษาโครงสร้างโฟลเดอร์แทนการทำให้แบนเหมือน VS ดูเหมือนว่า VS ไม่มีคุณลักษณะที่นี่
Mattijs

9
คำแนะนำ - ตรวจสอบให้แน่ใจว่าได้เลือกโครงการไม่ใช่การแก้ปัญหา - จากนั้นคุณสามารถแสดงทั้งหมด!
niico

89

ในโซลูชัน Explorer:

  1. คลิกแสดงไฟล์ทั้งหมด (ไอคอนที่สองจากด้านซ้ายที่ด้านบนของ Solution Explorer)
  2. ค้นหาโฟลเดอร์ที่คุณต้องการเพิ่ม
  3. คลิกขวาและเลือก"รวมในโครงการ"

ฉันใช้สิ่งนี้เพื่อติดตั้งส่วนเสริมเช่นโปรแกรมแก้ไข HTML และเบราว์เซอร์ไฟล์ของบุคคลที่สาม


16
สิ่งนี้แตกต่างจากคำตอบของ Brannon จาก 4 ปีก่อนอย่างไร
ToolmakerSteve

7
นี่ไม่ได้แก้ไขปัญหาดั้งเดิมซึ่งมีไว้สำหรับโฟลเดอร์Solution มันได้รับการคุ้มครองก่อนหน้านี้
2864740

@ToolmakerSteve: มันแตกต่างกันตรงที่มันเหมือนกับทางออกของ Gant จาก ... 7 ปีก่อน stackoverflow.com/questions/392473/…
Veverke

ขอแนะนำวิธีแก้ปัญหานี้เนื่องจากช่วยในการตรวจสอบไฟล์ csproj ที่ขัดแย้งกันและ tfs จะข้ามข้อขัดแย้งและเขียนทับ
John Demetriou

6
+1 ฉันพบคำตอบนี้มีประโยชน์มากกว่าคำตอบอื่น ๆ เพราะทำให้ชัดเจน (แสดงค่อนข้างชัดเจน) ว่าแสดงไฟล์ทั้งหมดเป็นไอคอนไม่ใช่รายการในเมนูบริบท

35

ฉันแค่อยากจะชี้ให้เห็นว่าสองวิธีที่นำเสนอก่อนหน้านี้

  • ลากและวางจาก Windows Explorer
  • แสดงไฟล์ทั้งหมดจากนั้นรวมในโครงการ

อย่าทำสิ่งที่คำถามถาม:

รวมอยู่ในโครงการในขณะที่รักษาโครงสร้างไดเรกทอรี

อย่างน้อยก็ในกรณีของฉัน (C ++ / โครงการ CLI Visual Studio 2013 บน Windows 7)

ใน Visual Studio เมื่อคุณกลับมาในมุมมองปกติ (ไม่แสดงไฟล์ทั้งหมด ) ไฟล์ที่คุณเพิ่มจะแสดงอยู่ในรายการระดับบนสุดของโครงการ

ใช่บนดิสก์พวกเขายังคงอยู่ที่เดิม แต่ใน Solution Explorer จะหลวม

ฉันไม่พบวิธีแก้ไขยกเว้นสร้างโครงสร้างไดเรกทอรีในโซลูชัน Explorer อีกครั้งจากนั้นเพิ่มรายการที่มีอยู่ในตำแหน่งที่ถูกต้อง


ฉันเห็นพฤติกรรมเดียวกัน VS2010, c ++
Radim Cernej

จริงอยู่ใน Visual Studio 2010 มันไม่ได้เพิ่มไฟล์โดยไม่มีโครงสร้างไดเรกทอรีสำหรับฉันแค่ไฟล์แรกในโครงสร้างโฟลเดอร์นั้นและไม่ใช่โฟลเดอร์ย่อย
Jonas

2
ตกลงมันยังแตกต่างกัน ฉันสงสัยว่าซอฟต์แวร์ที่ได้รับความนิยมและมีราคาแพงเช่น VS อาจขาดคุณสมบัติดังกล่าว ฉันคิดว่ามันค่อนข้างสับสนที่จะมีสองโครงสร้างที่แตกต่าง ๆ ที่คล้ายกันในการแก้ปัญหา Explorer และ Windows Explorer ...
เจนิส

12
ใช้ปี 2015 ที่นี่; ยังไม่รักษาโครงสร้างโฟลเดอร์ ตะลึง
Toby Deshane

เมื่อใช้ 2015 อัปเดต 3 เพิ่งประสบความสำเร็จกับแนวทางจาก Bannon และ Tom โฟลเดอร์ที่ซ้อนกันทั้งหมดเข้ามาตามที่คาดไว้
John Hatton

22

ฉันไม่เข้าใจทันทีตามคำอธิบายเหล่านี้ แต่นี่คือสิ่งที่ฉันสะดุดในที่สุด:

  1. เปิด "แสดงไฟล์ทั้งหมด" - มีไอคอนบนแถบเครื่องมือโซลูชัน Explorer
  2. ใช้ Windows Explorer (ไม่ใช่โซลูชัน explorer) ย้ายไฟล์ของคุณไปยังโครงสร้างไดเรกทอรีที่คุณต้องการให้พวกเขาอยู่
  3. คลิก "รีเฟรช" บนแถบเครื่องมือของ Explorer โซลูชันด้วย
  4. ไฟล์ที่คุณย้ายควรจะปรากฏ "โกสต์" ในโครงสร้างทรีโซลูชัน Explorer ที่คุณวางไว้
  5. คลิกขวาที่ไฟล์หรือโฟลเดอร์โกสต์ของคุณแล้วคลิก "รวมในโครงการ" เนื้อหาทั้งหมดของโฟลเดอร์จะรวมอยู่ด้วย

2
นี่เป็นโฟลเดอร์โซลูชันไม่ใช่โครงการ
StingyJack

Update: ไม่มีปุ่ม "refres" ใน VS2019
Liu Hao


13

ป้อนคำอธิบายภาพที่นี่

คลิกด้านบนในวงกลมสีแดง โฟลเดอร์ของคุณจะปรากฏใน Solution Explorer

คลิกขวาที่โฟลเดอร์ของคุณ -> รวมอยู่ในโครงการ


9

คุณสามารถเปลี่ยน XML โครงการของคุณเพื่อเพิ่มโฟลเดอร์ย่อยและโครงสร้างที่มีอยู่ในโครงการของคุณโดยอัตโนมัติเช่น "node_modules" จาก NPM:

นี่สำหรับรุ่น MSBuild / Visual Studio รุ่นเก่า

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

สำหรับเวอร์ชั่นปัจจุบันของ MSBuild / Visual Studio:

เพียงวางไว้ในโหนดของ xml:

<Project>
</Project>

ในกรณีนี้เพียงแค่เปลี่ยน $ (MSBuildProjectDirectory) \ node_modules เป็นชื่อโฟลเดอร์ของคุณ


ใช่บางครั้งการแก้ไขไฟล์ *. * proj ด้วยมือจะช่วยให้คุณไปถึงที่ที่คุณต้องการ
Chris O

1
ดังนั้นคุณกำลังบอกว่าบางคนสามารถสร้างปลั๊กอินเพื่อจัดทำชุดนี้ได้? เพราะฉันไม่ได้สร้างโครงสร้างโฟลเดอร์ใหม่ด้วยมือหลายสิบโฟลเดอร์ด้วย xml
Spectraljump

สิ่งที่ฉันกำลังมองหา
Vitaliy Kalinin

5

คุณต้องใส่โครงสร้างไดเรกทอรีในไดเรกทอรีโครงการ จากนั้นคลิกไอคอน "แสดงไฟล์ทั้งหมด" ที่ด้านบนของกล่องเครื่องมือ Solution Explorer หลังจากนั้นไดเรกทอรีที่เพิ่มเข้ามาจะปรากฏขึ้น จากนั้นคุณจะต้องเลือกไดเรกทอรีนี้คลิกขวาแล้วเลือก "รวมในโครงการ"


1
นี่เป็นคำตอบที่ได้รับการยอมรับและเป็นหนึ่งในความคิดเห็น
Kev

4

นี่คือสิ่งที่ฉันทำ:

  1. คลิกขวาที่โซลูชัน -> เพิ่ม -> เว็บไซต์ที่มีอยู่ ...
  2. เลือกโฟลเดอร์ที่เว็บไซต์ของคุณอยู่ เพียงแค่โฟลเดอร์รูทของเว็บไซต์

จากนั้นทุกอย่างจะถูกเพิ่มในโซลูชันของคุณจากโฟลเดอร์ไปยังไฟล์และไฟล์ภายในโฟลเดอร์เหล่านั้น


4

ในที่สุด Visual Studio 2017 ช่วยให้ผู้ใช้สามารถนำเข้าไดเรกทอรีทั้งหมดได้ด้วยคลิกเดียว Visual Studio 2017 มีฟังก์ชั่นใหม่"เปิดโฟลเดอร์ " ที่อนุญาตให้เปิดโฟลเดอร์ทั้งหมดได้โดยไม่จำเป็นต้องบันทึกเป็นโซลูชัน รหัสที่มาสามารถนำเข้าโดยใช้วิธีการดังต่อไปนี้

  1. ไฟล์เมนู→ เปิด →โฟลเดอร์ * ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

มันยังรองรับการสร้างและการดีบักโครงการ CMake

นำ codebase C ++ ของคุณไปที่ Visual Studio ด้วย“ Open Folder”


4

ขณะนี้มีส่วนขยายโอเพนซอร์ซในตลาดที่ดูเหมือนว่าจะทำสิ่งที่ OP ขอมา:

Folder To Solution โฟลเดอร์

โฟลเดอร์เพื่อแก้ปัญหาโฟลเดอร์

หากไม่ตรงตามที่คุณต้องการรหัสก็จะพร้อมใช้งานดังนั้นคุณสามารถแก้ไขได้เพื่อให้เหมาะกับสถานการณ์ของคุณ

HTH


ส่วนขยายไม่ทำงานสำหรับฉันในเวอร์ชัน VS 15.9.13 2017
Mateusz Migała

2

เคล็ดลับเรียบร้อยที่ฉันค้นพบคือถ้าคุณไปที่ "เพิ่มที่มีอยู่ ... " คุณสามารถลากโฟลเดอร์จากกล่องโต้ตอบเปิดไปยังโซลูชันของคุณ

ฉันมี Visual Studio ของฉันที่จะเปิดในโหมดผู้ดูแลระบบโดยอัตโนมัติดังนั้นนี่เป็นวิธีแก้ปัญหาที่ดีสำหรับฉันเพราะฉันไม่ต้องการที่จะเลิกทำเช่นนั้นเพื่อให้มันใช้งานได้


1

สิ่งที่ใช้ได้ผลสำหรับฉันคือการลากโฟลเดอร์ไปยัง Visual Studio จากนั้นคลิกขวาที่โฟลเดอร์และเลือก "เปิดโฟลเดอร์ในไฟล์ Explorer" จากนั้นเลือกทั้งหมดและลากลงในโฟลเดอร์ใน Visual Studio


0

ใน Windows 7 คุณสามารถทำสิ่งต่อไปนี้:

คลิกขวาที่โครงการของคุณและเลือก "เพิ่ม -> รายการที่มีอยู่" ในช่องโต้ตอบที่ปรากฏขึ้นให้เรียกดูรูทของไดเรกทอรีที่คุณต้องการเพิ่ม ที่มุมขวาบนคุณมีช่องค้นหา พิมพ์*.csหรือ*.cppประเภทไฟล์ที่คุณต้องการเพิ่ม หลังจากการค้นหาเสร็จสิ้นให้เลือกไฟล์ทั้งหมดคลิกเพิ่มและรอสักครู่ ...


5
สิ่งนี้ไม่รักษาโครงสร้างไดเรกทอรี - เพียงวางทุกอย่างไว้ในโฟลเดอร์ที่คุณคลิกเพิ่ม
Marc

0

วิธีที่สะอาดที่สุดที่ฉันพบว่าทำคือการสร้างโครงการ Class Library ใหม่ในโฟลเดอร์เป้าหมายและเปลี่ยนเส้นทางผลลัพธ์บิลด์ทั้งหมดที่อื่น มันยังคงปล่อยให้ไฟล์. csproj อยู่ในโฟลเดอร์นั้น แต่จะให้คุณดูได้ใน Visual Studio และเลือกไฟล์ที่จะรวมในโครงการของคุณ


-3

เป็นเรื่องที่น่ารำคาญที่ Visual Studio ไม่สนับสนุนสิ่งนี้ แต่ CMake สามารถสร้างโครงการ Visual Studio เพื่อแก้ไขปัญหาได้

นอกจากนั้นให้ใช้ Qt Creator จากนั้นสามารถส่งออกโครงการ Visual Studio

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.