Như những người khác đã nói, bạn có thể chỉ cần nhấp chuột phải vào giải pháp của bạn trong trình khám phá giải pháp, chọn Thêm> Dự án hiện tại và duyệt đến tệp .csproj dự án chung và nó sẽ được đưa vào giải pháp từ vị trí ban đầu của nó.
Có hai vấn đề với điều này tuy nhiên đó có thể hoặc có thể không là một vấn đề, tùy thuộc vào kích thước của nhóm của bạn:
1 - Dự án chung sẽ bao gồm trong mỗi giải pháp với một đường dẫn tương đối đến tập tin giải pháp (IE: ... \ CommonProject \ Common.csproj). Điều này có nghĩa là tất cả các nhà phát triển phải có cùng cấu trúc tệp làm việc hoặc họ sẽ gặp lỗi khi họ cố mở dự án chính.
2 - Trong trường hợp đó, dự án chung được tham chiếu bởi nhiều dự án (nói hai - A và B) và nhà phát triển làm việc trong dự án A phải thực hiện các thay đổi đối với dự án chung như một phần nhiệm vụ của họ. Không có cách nào để nhà phát triển đó biết nếu những thay đổi mà họ đã thực hiện sẽ phá vỡ dự án B mà không thực sự kiểm tra dự án B và biên dịch nó. Khi ngày càng có nhiều dự án tham khảo dự án chung, rủi ro của việc này xảy ra tăng lên đến mức nó trở nên không thể quản lý được.
Một lần nữa, như của người khác đã nói, không có cách nào chính xác 'để làm điều này, tuy nhiên cách tiếp cận tôi đã thực hiện như sau:
1 - Sử dụng tích hợp liên tục như Cruise Control để quản lý việc xây dựng các dự án và đưa dự án chung vào dự án độc lập trên máy chủ.
2 - Tạo thư mục dưới sự kiểm soát nguồn của bạn để xây dựng các tệp DLL phổ biến. Có thư mục này được kiểm tra trên máy xây dựng của bạn và bất cứ khi nào các dự án phổ biến xây dựng, nó sao chép các DLL đầu ra vào thư mục DLL và cam kết những thay đổi này để kiểm soát nguồn.
3 - Sử dụng biến môi trường trên tất cả các máy phát triển và máy chủ xây dựng để kiểm soát vị trí của thư mục DLL chung và tham khảo DLL bằng biến đó thay vì đường dẫn được mã hóa cứng. (IE: thay vì C: \ Source \ MyCommonProjectDLLS \ Common.dll sử dụng $ (MyCommonLocation) \ Common.dll với biến 'MyCommonLocation' được đặt thành C: \ Source \ MyCommonProjectDLLS)
4 - Đối với bất kỳ dự án nào tham khảo DLL phổ biến, thiết lập một kích hoạt CI trên máy chủ xây dựng cho dự án đó để xem thư mục DLL phổ biến. Bất cứ khi nào thay đổi được cam kết với nó, máy chủ xây dựng sau đó sẽ xây dựng tất cả các dự án tiêu thụ.
Điều này ngay lập tức cho bạn biết nếu bạn đang thực hiện các thay đổi đột phá cho bất kỳ dự án nào khác. Hạn chế duy nhất là, trong mô hình này, các dự án tiêu thụ là lực lượng để cập nhật các DLL thông thường ngay khi chúng được tạo ra. Một cách khác là phiên bản Common DLL từ bản sửa đổi điều khiển nguồn khi nó được xây dựng và đặt mỗi phiên bản vào thư mục con của chính nó trong thư mục DLL chung. Vì vậy, bạn sẽ kết thúc với:
DLL Common
-1.0.0.1234
-1.0.0.1235
-1.0.0.1236
Và vân vân. Ưu điểm của điều này là mỗi dự án sau đó có thể chọn khi nào cập nhật các DLL thông thường bằng cách tham chiếu phiên bản mới của mã. Tuy nhiên nó cắt giảm cả hai cách vì điều này có thể có nghĩa là một số dự án còn lại với các phiên bản cũ của mã phổ biến lâu hơn chúng nên có thể tăng công việc liên quan khi thời gian đến cuối cùng mang lại những thay đổi đó.
Hy vọng điều này sẽ hữu ích.
Bạn có ý nghĩa giống như tùy chọn "Thêm tệp dưới dạng liên kết" trong Visual Studio? http://support.microsoft.com/kb/306234 (EDIT: Đây là giả định rằng bạn chỉ đơn giản là không muốn sử dụng một dự án được chia sẻ?) –
Chỉ cần bao gồm các dự án khác nhau trong (các) giải pháp của bạn và thêm tham chiếu đến dự án, không phải là .dll đã biên dịch. Kho lưu trữ mã nguồn của chúng tôi có một thư mục bao gồm mã được chia sẻ (phần lớn là các dự án Thư viện lớp) và chúng tôi tham khảo các dự án đó từ các giải pháp trong các khu vực hoàn toàn khác nhau của cây. Điều khó khăn là tìm ra cách sắp xếp mã trong điều khiển nguồn để làm cho intuituve này trở thành nhóm của bạn. (và không có cách "đúng" để làm điều đó. Cách bạn thiết lập nó tùy thuộc vào nhiều yếu tố, có thể mất một chút thời gian để lên kế hoạch chính xác.) – David
http://msdn.microsoft.com/en-us /library/1xhzskbe.aspx –