687

Vấn đề rất đơn giản. Thay vì tạo các thư mục trong Visual Studio, tôi tạo cấu trúc thư mục cho dự án của mình trên hệ thống tệp. Làm thế nào để tôi bao gồm tất cả các thư mục và tệp trong một dự án, giữ cấu trúc?

Nếu tôi "Thêm tệp hiện có" vào thư mục có tên Dịch vụ và điều hướng đến một tệp trong cấu trúc thư mục .. Dịch vụ> Quản lý tài khoản> TạoAccount.cs, nó sẽ xuất hiện trong Visual Studio như vậy: Services> CreateAccount.cs. Tôi không muốn cái này.

Tôi đã có toàn bộ cấu trúc thư mục, vì tôi đang bắt chước các nhà phát triển khách hàng của chúng tôi bằng cách sử dụng cùng một cấu trúc cho tổ chức. Làm cách nào để thêm tất cả các thư mục và tệp vào dự án trong Visual Studio? Hay tôi phải làm những gì hầu hết người dùng Microsoft làm và "đưa ra" và tạo lại từng thư mục thông qua Visual Studio?

|
1.2k

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

    Có cách nào để làm điều này với một thư mục (cây) bên ngoài thư mục dự án không?

    – Hoàng Băng Tâm 18:36:17 01/05/2011
  • 1

    Có cách nào để làm điều này cho một thư mục KHÔNG phải là thư mục con của dự án của bạn không? tức là: Có E: \ ProjectX \ project.vcproj bao gồm thư mục E: \ Common * .cs ??

    – Võ Diệu Linh 01:00:05 28/02/2012
  • 1

    Hầu như hoạt động. Tôi có thể thấy cây thư mục và thêm nhiều tệp, nhưng nó sẽ không cho phép tôi thêm toàn bộ thư mục bao gồm các cây con.

    – Trần Như 16:44:49 09/05/2012
  • 1

    Vấn đề là nó CHỈ LÀM VIỆC nếu bạn sao chép cây thư mục trong dự án Visual của bạn thông qua Windows explorer. Làm thế nào bạn có thể làm nếu bạn chỉ muốn tham khảo một số thư mục và tệp có trong một dự án khác trên máy tính của bạn?

    – Tạ Thiên Khánh 10:16:13 07/08/2013
  • 1

    Cách duy nhất tôi biết để làm điều này bên ngoài dự án là sử dụng một liên kết tượng trưng ... xem câu trả lời của tôi: stackoverflow.com/a/26537736/835561

    – Hồ Phương Thanh 21:25:54 23/10/2014
64

Bạn cũng có thể kéo và thả thư mục từ Windows Explorer vào cửa sổ giải pháp Visual Studio.

|
  • 1

    Điều này không hoạt động trong cài đặt VS 2010 của tôi trên Vista Ultimate 64 bit.

    – Đỗ Công Phụng 03:14:54 06/04/2011
  • 1

    Không, không hoạt động trong cài đặt VS 2010 của tôi trên Windows 7.

    – Phan Anh Tùng 10:30:00 15/11/2011
  • 1

    Xác nhận điều này không hoạt động trong VS 2010 (chế độ không phải Quản trị viên)

    – Tạ Thu Hậu 06:24:05 23/03/2012
  • 1

    Tôi không nghĩ các bạn đang làm đúng. VS 2010 không hỗ trợ thư mục kéo n thả. Tôi làm tất cả thời gian để bao gồm bộ dụng cụ của tôi. Bạn phải chắc chắn rằng bạn thả vào cây dự án. Bảng giải pháp và nút giải pháp sẽ không nhận được thả. Hệ điều hành không liên quan ở đây, nhưng đối với những người nghi ngờ, tôi sử dụng Windows 7 64 bit.

    – Dương Hồng Hạnh 04:34:59 31/05/2012
  • 1

    "Các mục giải pháp" khác với việc thêm các mục vào một dự án. Mục giải pháp là một thư mục đặc biệt trong giải pháp VS.

    – Dương Bảo Ngọc 00:11:57 16/10/2012
37

Trong Visual Studio 2015, đây là cách bạn làm điều đó.

Nếu bạn muốn tự động bao gồm tất cả các tệp con cháu bên dưới một thư mục cụ thể:

<Content Include="Path\To\Folder\**" />

Điều này có thể được hạn chế để chỉ bao gồm các tệp trong đường dẫn được chỉ định:

<Content Include="Path\To\Folder\*.*" />

Hoặc thậm chí chỉ các tệp có phần mở rộng được chỉ định:

<Content Include="Path\To\Folder\*.jpg" >

Tham khảo: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio

|
  • 1

    Tôi thấy điều này hữu ích vì sau đó tôi có thể bao gồm một thẻ duy nhất cho "sao chép luôn luôn trên bản dựng", thay vì cần chú thích mọi tệp riêng lẻ (như trường hợp trong câu trả lời được chấp nhận)

    – Đỗ Công Phụng 00:19:13 03/12/2016
  • 1

    IMO một trong những câu trả lời hữu ích nhất ở đây.

    – Phan Anh Tùng 20:27:50 21/08/2017
  • 1

    Nó được thêm vào ở đâu? Làm thế nào để bạn có được một khung nhìn XML trong VS?

    – Tạ Thu Hậu 19:22:23 28/01/2019
29

Sao chép và dán .

Để thêm một thư mục, tất cả các thư mục con và tệp chúng ta cũng có thể Sao chép và Dán. Ví dụ: chúng ta có thể:

  1. Nhấp chuột phải vào Windows explorer trên thư mục và Sao chép vào thư mục có nhiều tệp và thư mục.

  2. Sau đó, trong Visual Studio Solution explorer, nhấp chuột phải vào thư mục đích và nhấp dán.

  3. Tùy chọn thêm vào TFS; Sau đó, trong thư mục trên cùng nhấp chuột phải và đăng nhập vào TFS để kiểm tra tất cả các thư mục con và tệp.

|
15

Bạn có thể sử dụng một liên kết tượng trưng. Điều này làm cho việc sửa đổi tệp trong một dự án sẽ sửa đổi nó trong dự án khác (vì thực tế nó là cùng một tệp).

Để làm điều này:

  1. Mở dấu nhắc cmd với tư cách quản trị viên
  2. mklink / d [tên thư mục dự án hiện tại] [thư mục trong dự án khác cần trỏ đến]

Điều này có nhược điểm và cạm bẫy, nhưng tôi sử dụng nó cho các thư viện trùng lặp cần các tên khác nhau.

Chỉnh sửa cho Anoop: Các bước để thêm vào Visual Studio:

  1. Tạo liên kết trong thư mục dự án bằng các bước trên.
  2. Trong Visual Studio ... chọn dự án trong Solution Explorer.
  3. Ở đầu Solution Explorer ... nhấp vào nút Hiển thị tất cả tệp (có thể cần nhấp vào hai lần nếu đã hoạt động).
  4. Liên kết bây giờ sẽ hiển thị trong dự án của bạn ... nhấp chuột phải và chọn Bao gồm trong dự án.

Đây là những bước tôi làm theo và làm việc cho một vài dự án khác nhau.

|
  • 1

    Nó không hoạt động! các liên kết tượng trưng không được công nhận là thư mục

    – Dương Hùng Cường 12:48:40 01/12/2014
  • 1

    @Anoop: Tôi đã thêm các bước để cho thấy cách tôi sử dụng phương pháp này. Hãy thử xem.

    – Tạ Thiện Lương 14:54:24 02/12/2014
  • 1

    Nó hoạt động! Tôi đã cố gắng tạo một lối tắt bằng cách nhấp chuột phải vào thư mục, thay vì sử dụng dấu nhắc lệnh và do đó nó không hoạt động. Thực hiện theo các bước được mô tả ở trên đã khắc phục sự cố. Cảm ơn

    – Huỳnh Hải Phong 09:26:33 03/12/2014
  • 1

    Lưu ý: mklink sẽ không hoạt động trên hệ thống tệp FAT. Nó dành cho NTFS.

    – Đặng Lộc An 11:38:38 29/12/2014
  • 1

    Kiểm soát nguồn sẽ tàn phá các liên kết tượng trưng. Git cần đặc quyền quản trị hoặc chỉ cần kiểm tra trong tệp.

    – Hoàng Bích Như 00:33:43 10/01/2016
9

Để mở rộng câu trả lời của Yuchen , bạn có thể bao gồm các tệp và đường dẫn dưới dạng liên kết. Điều này không giống với việc thêm các mục hiện có vì nó không tạo thêm một bản sao trong cấu trúc thư mục dự án của bạn. Nó rất hữu ích nếu bạn muốn một thư mục / tệp chính tắc được sử dụng ở nhiều nơi khác nhau nhưng bạn chỉ muốn duy trì một phiên bản / bản sao của nó.

Dưới đây là một ví dụ về những gì bạn có thể thêm vào một *.csprojtệp để tạo liên kết

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) là biến Môi trường Windows do tôi xác định, bạn có thể sử dụng biến Môi trường tích hợp theo cách tương tự.

Nhóm ví dụ cuối cùng là một loạt các tệp nội dung tôi cần trong đầu ra cuối cùng. Xem https://stackoverflow.com/a/11808911/492 và các câu trả lời & liên kết khác ở đó để biết thêm về điều đó.

Thêm thông tin MSBuild tại https://msdn.microsoft.com/en-us/l Library / bb629388.aspx

|
7

Trong Visual Studio 2017, bạn chuyển đổi giữa Chế độ xem Giải phápChế độ xem Thư mục qua lại. Tôi nghĩ rằng đây là một lựa chọn tốt hơn, bởi vì nó sẽ giữ cho giải pháp sạch hơn. Tôi sử dụng điều này để chỉnh sửa các tập tin .gitignore, .md, v.v.

|
  • 1

    Câu hỏi là làm thế nào để thêm một thư mục hiện có vào giải pháp, không chỉ để xem các thư mục.

    – Phan Tân Thành 10:18:20 01/08/2018
  • 1

    Đây là một tùy chọn thực sự tốt để xem cấu trúc thực tế, để mở một thư mục trong tệp explorer, v.v. - nhưng thật không may, bạn không thể thêm cây thư mục hiện có từ chế độ xem thư mục. Điều đó chỉ có thể trong chế độ xem giải pháp, như Gant đã mô tả nó.

    – Tạ Diễm My 14:49:29 02/08/2018
3

Tôi nghĩ rằng tôi đã tìm thấy một cách để làm điều này với Compile Bao gồm = ". \ Code ***. Cs" Điều tôi muốn là bao gồm mã đệ quy trong thư mục Code của tôi.

Đây là mẫu tập tin dự án.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>
|
2

Trong Visual Studio 2013, tôi không thể làm cho "Bao gồm trong dự án" hoạt động khi nhấp chuột phải vào thư mục. Những gì đã làm là mở rộng thư mục, chọn tất cả các tệp sau đó chọn "Bao gồm trong dự án". Điều này khá tẻ nhạt khi bạn phải thực hiện từng thư mục một (nhưng ít nhất bạn có thể thực hiện tất cả các tệp trong mỗi thư mục trong một lần) và dường như lưu trữ đường dẫn tệp (bạn có thể thấy điều này bằng cách xem thuộc tính trên tệp và nhìn vào tùy chọn "Đường dẫn tương đối".)

Tôi hy vọng sẽ sử dụng điều này để triển khai một số tệp dữ liệu trong dự án Visual Studio Installer và dường như nó sẽ chọn các tệp được bao gồm và bảo toàn đường dẫn của chúng.

|
0

Theo như tôi có thể nói, cách duy nhất để làm điều này trong VS2010 gần giống với phương pháp kéo và thả. Nhấp chuột phải vào giải pháp mà bạn muốn thêm một dự án. Menu ứng dụng sẽ có thêm ... mục. Mở ra điều đó, bạn thấy rằng một trong các tùy chọn là thêm một dự án hiện có vào giải pháp.

Trong hộp thoại mở ra, điều hướng đến thư mục chứa tệp dự án cho giải pháp và chọn nó. VS sẽ, như là một phần của việc nhập tệp dự án đó, cũng nhập toàn bộ thư mục và, tôi giả sử bất kỳ thư mục cấp dưới nào là một phần của dự án đó.

Vì điều này không yêu cầu tệp dự án hiện có, nên sẽ không thể nhập cây thư mục cho đến khi cây đó được chuyển đổi thành dự án.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.