2010-09-03 34 views
7

Tôi đang làm việc trên một giải pháp chứa nhiều dự án. Tôi sẽ tái cấu trúc giải pháp bằng cách kết hợp một số dự án với nhau.Hợp nhất hai hoặc nhiều dự án studio trực quan vào một dự án

Có tiện ích mở rộng công cụ hay tiện ích trực quan nào giúp tôi tái cấu trúc giải pháp lớn của mình bằng cách hợp nhất một hoặc nhiều dự án vào dự án.

Tất nhiên điều này có thể được thực hiện thủ công nhưng tôi hy vọng sẽ có giải pháp tự động hơn!

+0

Tôi không nghĩ rằng có một công cụ, nhưng không khó để thêm các dự án hiện có vào một giải pháp - trừ khi bạn đã có 100 của khóa học! – ChrisF

Trả lời

2

Bạn có thể kéo và thả các mục từ dự án này sang dự án khác.

Bất kỳ thay đổi không gian tên nào vv mà bạn muốn sẽ cần phải được thực hiện theo cách thủ công.

Điều này sẽ sao chép các tệp và tạo dưới dạng thêm vào bất kỳ VCS tích hợp nào.

Cách tiếp cận khác là phân nhánh VCS vào dự án đích và sau đó sử dụng "thêm mục hiện có" để thêm. Điều này sẽ (tùy thuộc vào VCS của bạn) duy trì lịch sử.

+0

Có, nhưng đây là phương pháp thủ công tôi đang tìm kiếm một cách tự động để thực hiện điều này – Coder

0

Cách tốt hơn là viết một tiện ích của riêng bạn với các bản ghi tùy chỉnh để cập nhật tệp .csproj hoặc .vbproj và chuyển tệp vào thư mục cụ thể và đặt lại tên cho các không gian tên. Điều đó sẽ tiết kiệm rất nhiều thời gian.

Nhưng, có rất ít công cụ có sẵn. Tôi không làm thế nào họ đang tối đa.

http://slntools.codeplex.com/
http://www.projectmerge.com/index.php

HTH

7

Hãy thử "Move to Folder" refactoring trong ReSharper, nó sẽ đối phó với không gian tên và sử dụng chỉ thị thay đổi mà việc hợp nhất ngụ ý.

  1. Trong Solution Explorer, chọn tệp bạn muốn di chuyển từ dự án nguồn đến dự án đích của bạn.
  2. Chọn ReSharper> Refactor> Di chuyển. Here's how the refactoring dialog looks like.
  3. Chọn dự án đích (hoặc một thư mục trong đó).
  4. Đảm bảo giữ "Fix namespaces" được chọn và áp dụng cấu trúc lại.

Nếu có xung đột ngăn chặn di chuyển, ReSharper sẽ cho bạn biết về chúng. Nếu không, việc tái cấu trúc sẽ được áp dụng ngay lập tức.

P.S. Tôi làm việc tại JetBrains

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