Làm cách nào để tôi thêm mục hiện có vào một cấu trúc thư mục trong Visual Studio?


765

Tôi có một tập hợp các tệp miễn phí không liên kết với bất kỳ dự án C # nào nằm trong cấu trúc thư mục lồng nhau phức tạp.

Tôi muốn thêm chúng ở định dạng đó vào một thư mục khác trong một ứng dụng web ASP.NET mà tôi đang làm việc; trong khi vẫn giữ nguyên cấu trúc. Vì vậy, tôi đã sao chép thư mục vào vị trí mục tiêu của dự án của mình và tôi đã cố gắng để thêm các mục hiện có, chỉ để mất hệ thống phân cấp thư mục trước đó.

Thông thường tôi đã tạo lại các thư mục bằng tay, sao chép trên cơ sở một-một, và sau đó thêm các mục hiện có. Đơn giản là có quá nhiều thư mục / mục trong trường hợp này.

Vậy làm thế nào để bạn thêm các thư mục và tệp hiện có trong Visual Studio 2008?


44
Thực tế là điều này không rõ ràng đối với hầu hết mọi người (bao gồm cả tôi) là một minh chứng đáng buồn về Visual Studio.
Pete Alvin

22
@Pete Alvin Tôi có nhiều bằng chứng đáng buồn về Visual Studio nhưng đánh giá cao hơn bây giờ vì tôi đã dành thời gian với một số IDE khác ngoài kia.
Freek Nortier

4
Visual studio không hoàn hảo, tuy nhiên, tôi đã sử dụng mọi IDE có sẵn. Nếu là tốt nhất. Eclipse thậm chí không đóng, Xcode có lẽ là thứ duy nhất đến gần.
user1127081

2
@ user1127081: Tôi phải thứ hai này. Visual Studio là khá xa hoàn hảo, nhưng tôi đã sử dụng khá nhiều IDE khác cho hầu hết mọi hệ điều hành và phát triển ngoài kia và tất cả chúng đều tệ hơn rất nhiều. Tôi cũng phải đồng ý rằng Xcode rõ ràng và tốt nhất so với phần còn lại, nhưng nó đã trở thành như vậy chỉ sau khi nó được chấp thuận rất nhiều giữa Xcode 3 và Xcode 4. Eclipse chỉ là một cơn ác mộng.
Kaiserludi

Câu trả lời:


737

Kéo các tệp / thư mục từ Windows Explorer vào Solution Explorer. Nó sẽ thêm tất cả. Lưu ý điều này không hoạt động nếu Visual Studio ở Chế độ quản trị viên, vì Windows Explorer là quy trình Chế độ người dùng.


42
Điều này không làm việc cho tôi. Nó chỉ cho tôi biểu tượng của một mục tiêu thả không hợp lệ. Chương trình hiển thị tất cả các tệp bên dưới hoạt động hoàn hảo mặc dù
Cine

115
Trong VS 2010, sau khi draggin có thư mục, chọn tùy chọn Hiển thị tất cả các tệp trong dự án. Các tệp tồn tại ở dạng "bóng ma", nhấp chuột phải vào thư mục và Bao gồm trong Dự án. Sau đó, chúng sẽ được thêm vào
John Ptacek

10
@JohnPtacek: Điều đó hoạt động trong một dự án, nhưng không phải trong giải pháp.

2
Câu trả lời này không hợp lệ đối với VS2010 (Ít nhất là theo như tôi có thể nói). Câu trả lời của Tom vào ngày 7/10/12 là giải pháp tốt nhất cho tôi trong VS2010
BLSully

8
Giết explorer.exe bằng trình quản lý tác vụ, khởi động nó với tư cách quản trị viên và sau đó bạn có thể kéo và thả vào Visual Studio ngay cả khi nó chạy với tư cách Quản trị viên.
xander

545

Bật "Hiển thị tất cả tệp" cho dự án cụ thể (bạn có thể cần nhấn "Làm mới" để xem chúng) **.

Các thư mục / tệp không phải là một phần của dự án của bạn có vẻ hơi "nhẹ" hơn trong cây dự án.

Nhấp chuột phải vào các thư mục / tệp bạn muốn thêm và nhấp vào "Bao gồm trong dự án" . Nó sẽ đệ quy thêm các thư mục / tệp vào dự án.

** Các nút này được đặt trên thanh công cụ Solution Explorer nhỏ.

** Hãy chắc chắn rằng bạn KHÔNG ở chế độ gỡ lỗi.


2
Có vẻ như điều này chỉ hoạt động cho các tệp sâu hơn tệp dự án của bạn, nếu bạn giữ tệp dự án của mình trong một thư mục riêng, điều này sẽ không hoạt động.
Daniel Parker

28
Điều này chỉ hoạt động trong các dự án cá nhân, nhưng không phải trong một giải pháp.

7
Duh ... đó không phải là nơi bạn cần đặt tập tin. Tất nhiên nó sẽ không tìm thấy các tập tin trên thư mục gốc của bạn.
Bluebaron

3
Điều này sẽ chỉ hoạt động khi bạn muốn các thư mục bạn thêm vào cư trú trong thư mục dự án của bạn. Trong trường hợp của tôi, tôi muốn chúng ở một nơi khác (được chia sẻ giữa các dự án). Trong XCode, việc kéo cấu trúc thư mục từ bất kỳ vị trí nào vào cấu trúc dự án sẽ duy trì cấu trúc thư mục thay vì làm phẳng nó như VS. Hình như VS thiếu một tính năng ở đây.
Mattijs

9
mẹo - đảm bảo dự án được chọn, không phải là giải pháp - sau đó bạn có thể hiển thị tất cả!
niico

89

Trong Giải pháp Explorer:

  1. Nhấp vào Hiển thị tất cả các tệp (biểu tượng thứ hai từ bên trái ở đầu Solution Explorer).
  2. Xác định vị trí thư mục bạn muốn thêm.
  3. Nhấp chuột phải và chọn "Bao gồm trong dự án"

Tôi sử dụng điều này để cài đặt các tiện ích bổ sung như trình soạn thảo HTML và trình duyệt tệp của bên thứ ba.


16
Điều này khác với câu trả lời của Brannon từ 4 năm trước như thế nào?
ToolmakerSteve

7
Điều này không giải quyết vấn đề ban đầu cho thư mục Giải pháp . Nó cũng đã được bảo hiểm trước đây.
dùng2864740

@ToolmakerSteve: Điều khác biệt ở chỗ nó giống với giải pháp của Gant từ ... 7 năm trước. stackoverflow.com/questions/392473/
Mạnh

Rất khuyến khích giải pháp này vì nó cũng hữu ích khi xung đột các tệp csproj đã được kiểm tra và tfs bỏ qua các xung đột và ghi đè
John Demetriou

6
+1. Tôi thấy câu trả lời này hữu ích hơn các câu hỏi khác vì nó làm cho nó (tương đối) rõ ràng rằng Show All Files là một biểu tượng , không phải là một mục trên menu ngữ cảnh.

35

Tôi chỉ muốn chỉ ra rằng hai trong số các giải pháp được cung cấp trước đây,

  • Kéo và thả từ Windows Explorer
  • Hiển thị tất cả các tệp và sau đó bao gồm trong dự án.

không làm những gì câu hỏi yêu cầu:

Bao gồm trong dự án trong khi bảo tồn cấu trúc thư mục .

Ít nhất là không phải trong trường hợp của tôi (dự án C ++ / CLI Visual Studio 2013 trên Windows 7).

Trong Visual Studio, một khi bạn quay lại chế độ xem bình thường (không hiển thị tất cả các tệp ), các tệp bạn đã thêm đều được liệt kê ở cấp cao nhất của dự án.

Có, trên đĩa họ vẫn cư trú, nhưng trong Solution Explorer, chúng bị lỏng.

Tôi không tìm thấy cách nào khác ngoài việc tạo lại cấu trúc thư mục trong Solution Explorer và sau đó thực hiện Thêm các mục hiện có ở đúng vị trí.


Tôi thấy hành vi tương tự, VS2010, c ++.
Radim Cernej

Đúng, cũng trong Visual Studio 2010. Nó thậm chí không thêm các tệp mà không có cấu trúc thư mục cho tôi, chỉ là tệp đầu tiên trong cấu trúc thư mục đó và không có bất kỳ thư mục con nào.
Jonas

2
Đồng ý, nó vẫn khác. Tôi tự hỏi làm thế nào một phần mềm phổ biến và đắt tiền như VS có thể thiếu tính năng như vậy. Tôi cho rằng khá khó hiểu khi có hai cấu trúc khác nhau nhưng tương tự nhau trong trình thám hiểm giải pháp và trình thám hiểm cửa sổ ...
Janis

12
Sử dụng 2015 tại đây; vẫn không bảo tồn cấu trúc thư mục. Choáng váng.
Toby Deshane

Sử dụng 2015 Update 3, đã thành công với cách tiếp cận từ Bannon và Tom. Tất cả các thư mục lồng nhau đến như mong đợi.
John Hatton

22

Tôi đã không hiểu ngay điều này dựa trên những mô tả này nhưng đây là điều cuối cùng tôi đã vấp phải:

  1. Bật "Hiển thị tất cả tệp" - có một biểu tượng trên thanh công cụ Solution Explorer
  2. Sử dụng Windows Explorer (không phải giải pháp thám hiểm), di chuyển các tệp của bạn vào cấu trúc thư mục nơi bạn muốn chúng cư trú
  3. Nhấp vào "Làm mới" cũng trên thanh công cụ Solution Explorer
  4. Các tệp mà bạn đã di chuyển sẽ hiển thị "bóng mờ" trong cấu trúc cây Solution Explorer nơi bạn đã đặt chúng
  5. Nhấp chuột phải vào các tập tin hoặc thư mục bị bóng ma của bạn và nhấp vào "Bao gồm trong dự án". Tất cả nội dung của một thư mục sẽ được bao gồm

2
Đây là một thư mục giải pháp, không phải là một dự án.
StingyJack

Cập nhật: Không có nút "refres" trong VS2019
Liu Hao

16

Dưới đây là biểu tượng cho ' Hiển thị tất cả các tệp ', chỉ để tham khảo dễ dàng.

Nhập mô tả hình ảnh ở đây


13

Nhập mô tả hình ảnh ở đây

Nhấp vào bên trên trong vòng tròn màu đỏ. Thư mục của bạn sẽ xuất hiện trong Solution Explorer.

Nhấp chuột phải vào thư mục của bạn -> Bao gồm trong dự án .


9

Bạn có thể tự động thay đổi XML dự án của mình để tự động thêm các thư mục con và cấu trúc vào dự án của bạn như "node_modules" từ NPM:

Đây là phiên bản cũ hơn của MSBuild / Visual Studio

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

Đối với các phiên bản MSBuild / Visual Studio hiện tại:

Chỉ cần đặt nó trong các nút của xml:

<Project>
</Project>

Trong trường hợp này, chỉ cần thay đổi $ (MSBuildProjectDirectory) \ node_modules thành tên thư mục của bạn.


Đúng, đôi khi chỉnh sửa bằng tay tệp *. * Proj sẽ đưa bạn đến nơi bạn muốn.
Chris O

1
Vì vậy, bạn đang nói ai đó có thể tạo một plugin cho lô - làm điều này? Bởi vì tôi không tạo lại cấu trúc thư mục với hàng chục thư mục bằng tay trong một xml
Spectraljump

Chính xác những gì tôi đang tìm kiếm
Vitaliy Kalinin

5

Bạn cần đặt cấu trúc thư mục của bạn trong thư mục dự án của bạn. Và sau đó nhấp vào biểu tượng "Hiển thị tất cả tệp" trong đầu hộp công cụ Solution Explorer. Sau đó, thư mục đã thêm sẽ được hiển thị. Sau đó, bạn sẽ cần chọn thư mục này, nhấp chuột phải và chọn "Bao gồm trong dự án."


1
Đây là khá nhiều những gì câu trả lời được chấp nhận cho thấy và một trong những ý kiến ​​dưới nó.
Kev

4

Đây là những gì tôi làm:

  1. Nhấp chuột phải vào giải pháp -> Thêm -> Trang web hiện tại ...
  2. Chọn thư mục nơi trang web của bạn. Chỉ cần thư mục gốc của trang web.

Sau đó, mọi thứ sẽ được thêm vào giải pháp của bạn từ thư mục đến tệp và tệp bên trong các thư mục đó.


4

Cuối cùng, Visual Studio 2017 cho phép người dùng nhập toàn bộ thư mục chỉ bằng một cú nhấp chuột. Visual Studio 2017 có chức năng mới "Mở thư mục " cho phép mở toàn bộ thư mục, thậm chí không cần lưu nó dưới dạng giải pháp. Mã nguồn có thể được nhập bằng các phương pháp sau.

  1. Tệp menu → Mở → * Thư mục ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

Nó thậm chí còn hỗ trợ xây dựng và gỡ lỗi các dự án CMake.

Mang cơ sở mã C ++ của bạn đến Visual Studio với Thư mục mở


4

Hiện tại có một phần mở rộng nguồn mở trong Thị trường dường như thực hiện những gì OP yêu cầu:

Thư mục giải pháp Thư mục

thư mục-giải pháp-thư mục

Nếu nó không làm chính xác những gì bạn muốn, mã có sẵn, vì vậy bạn có thể sửa đổi nó cho phù hợp với kịch bản của bạn.

HTH


Tiện ích mở rộng không hoạt động với tôi trên phiên bản VS 15.9.13 2017
Mateusz Migała

2

Một mẹo nhỏ mà tôi phát hiện ra là nếu bạn vào "Thêm hiện có ...", bạn có thể kéo thư mục từ hộp thoại mở vào giải pháp của mình.

Tôi có Visual Studio của tôi tự động mở trong Chế độ quản trị viên, vì vậy đây là một cách giải quyết tốt cho tôi vì tôi không muốn phải hoàn tác điều đó chỉ để làm cho nó hoạt động.


1

Điều làm việc với tôi là kéo thư mục vào Visual Studio, sau đó nhấp chuột phải vào thư mục và chọn "Mở thư mục trong File Explorer". Sau đó chọn tất cả và kéo chúng vào thư mục trong Visual Studio.


0

Trong Windows 7, bạn có thể làm như sau:

Nhấp chuột phải vào dự án của bạn và chọn "Thêm-> Mục hiện có". Trong hộp thoại xuất hiện, duyệt đến thư mục gốc của thư mục bạn muốn thêm. Ở góc trên bên phải, bạn có một hộp tìm kiếm. Nhập *.cshoặc *.cppbất cứ loại tệp bạn muốn thêm. Sau khi tìm kiếm kết thúc, chọn tất cả các tệp, nhấp vào Thêm và đợi một lúc ...


5
Điều này không duy trì cấu trúc thư mục - nó chỉ đặt mọi thứ vào thư mục mà bạn đã nhấp thêm.
Marc

0

Cách sạch nhất mà tôi đã tìm thấy để làm điều này là tạo một dự án Thư viện lớp mới trong thư mục đích và chuyển hướng tất cả đầu ra bản dựng của nó ở nơi khác. Nó vẫn để một tệp .csproj nằm trong thư mục đó, nhưng nó cho phép bạn xem nó trong Visual Studio và chọn các tệp để đưa vào dự án của bạn.


-3

Thật khó chịu khi Visual Studio không hỗ trợ điều này một cách tự nhiên, nhưng CMake có thể tạo dự án Visual Studio như một công việc xung quanh.

Ngoài ra, chỉ cần sử dụng Qt Creator. Sau đó, nó có thể xuất một dự án Visual Studio.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.