2011-12-11 74 views
12

MS Visual Studio có Solution Explorer, nơi tôi có thể xem tất cả các tệp dự án, tôi cũng có thể tạo bộ lọc giống như các thư mục cho tệp để giữ chúng trong nhóm. Vấn đề là - Tôi muốn các tập tin của tôi chia thành các nhóm cả trong hình ảnh và thể chất trên đĩa của tôi. Nhưng tôi không muốn phải áp dụng từng thay đổi hai lần trong Visual và trên đĩa của tôi. Có cách nào để hiển thị các thư mục thực tế, trong đó tôi giữ các tập tin của tôi trên đĩa, trong Visual Solution Explorer (và không - "Hiển thị tất cả các tập tin" không làm điều đó, tôi vừa kiểm tra)?Thư mục thực trong Visual Solution Explorer?

+0

Đối với tôi, 'hiển thị tất cả các tệp' hoạt động nếu tệp dự án nằm trong thư mục mẹ của tất cả các tệp nguồn, nhưng không phải tệp dự án nằm trong thư mục riêng của nó. – entheh

Trả lời

4

Không - SE và Hệ thống lưu giữ bản sao độc lập của thông tin cấu trúc/thông tin.

Tôi thường vô hiệu hóa các bộ lọc và đặt các tệp mà tôi muốn, để hai cấu trúc vẫn được đồng bộ hóa theo mặc định (thực sự, bất kỳ cách nào khác có vẻ như điên rồ nếu bạn muốn có bất kỳ loại tổ chức mã nguồn nào - I luôn luôn nhóm các tập tin cho các thành phần inot các thư mục riêng biệt).

Sau đó (với các bộ lọc vô hiệu hóa) ...

Nếu bạn tạo các thư mục trong Solution Explorer, và sử dụng menu ngữ cảnh từ thư mục đó để "Thêm mục mới ..." hoặc "Thêm mục hiện có", sau đó cấu trúc đĩa sẽ phản ánh trình thám hiểm giải pháp (các mục hiện có được sao chép thay vì được tham chiếu từ nơi chúng hiện đang cư trú để đảm bảo điều này, có thể dẫn đến các bản sao cũ của các tệp còn lại xung quanh dự án của bạn nếu bạn thêm vào thư mục SE sai). Nếu không thì thường chỉ khi bạn "thêm làm liên kết", VS sẽ đặt một mục vào một thư mục khác trong SE so với nó xuất hiện trên đĩa.

Để điều dọn vệ sinh, các phương pháp đơn giản nhất là (sau khi thực hiện một bản sao lưu chỉ trong trường hợp):

  • mở các giải pháp và các nhà thám hiểm tập tin và bằng tay "diff" họ. Bất kỳ tệp nào "sai" sẽ bị xóa khỏi SE, được di chuyển đến đúng vị trí đĩa và sau đó được thêm vào SE bằng cách sử dụng trình đơn ngữ cảnh cho thư mục SE chính xác.
  • Nếu không có quá nhiều thư mục, cách tiếp cận đơn giản hơn là xóa tất cả các tệp khỏi trình khám phá giải pháp rồi thêm chúng (một thư mục một lần) trở lại dự án, đảm bảo bạn tạo đúng tên thư mục đi và thêm từ menu ngữ cảnh của mỗi thư mục. Bằng cách xây dựng lại SE từ đầu bạn có thể nhanh chóng đồng bộ hóa hai bố cục, và điều này thường có thể dễ dàng hơn là cố gắng tìm ra sự khác biệt nằm ở đâu.

Khi chúng được đồng bộ, chỉ sử dụng SE để quản lý tệp và cẩn thận thêm các mục bằng menu ngữ cảnh từ thư mục chính xác. Nếu bạn di chuyển mọi thứ trên đĩa, bạn sẽ phá vỡ các liên kết.

+1

Lưu ý rằng điều này chỉ áp dụng cho các dự án C/C++. Các dự án C# không có ánh xạ 1-tới-1 của các tệp. –

+0

@Sebastiaan: Vâng, với hai ngoại lệ, tôi có thể nghĩ: 1) khi bạn thêm tệp dưới dạng "liên kết", chúng không cần ánh xạ 1: 1 (nhưng chúng được hiển thị bằng biểu tượng liên kết rõ ràng).2) Bản đồ 1: 1 áp dụng trong các dự án, nhưng bản thân các dự án (trong một Giải pháp) không cần phải có ánh xạ đường dẫn 1: 1. –

2

Nếu bạn nhấp vào 'hiển thị tất cả tệp', bạn chuyển trình khám phá giải pháp khỏi hiển thị bộ lọc ảo của tệp thành bộ lọc tệp vật lý.

+2

OP đã nêu trong câu hỏi rằng giải pháp này không hoạt động. – psubsee2003

0

Bằng bộ lọc tôi nghĩ bạn đang đề cập đến Thư mục giải pháp. Đó là những thư mục ảo không có hệ thống tập tin. Một mẹo tôi đã làm là tạo một dự án vứt bỏ. Các mục được thêm vào thư mục dự án sẽ duy trì mối quan hệ của chúng. Nó là một hack, nhưng nó hoạt động. Nếu ai đó biết một cách ít hacky để làm điều đó, tôi cũng muốn biết.

Các vấn đề liên quan