2015-06-26 22 views
5

Tôi có một giải pháp nhỏ, với khoảng dưới hai mươi dự án. Giải pháp được sử dụng để chứa khoảng sáu dự án nguồn được viết bởi nhà cung cấp dịch vụ bên thứ ba, ACME. Bây giờ, cuối cùng, bên kia đang cung cấp cho chúng tôi chỉ với một số lượng tệp DLL. Tôi đã từng chỉ đưa vào nguồn của họ, một dự án cho mỗi DLL, trong giải pháp, và vì vậy tôi đang tìm kiếm một cách gọn gàng để bao gồm tất cả các hội đồng này trong giải pháp, vì vậy chúng có thể được tham chiếu từ nhiều dự án cần chúng.Cách chia sẻ nhiều tệp nhị phân giữa các dự án nguồn trong một giải pháp?

My lựa chọn ngay lập tức rõ ràng là:

  1. Tạo một dự án AcmeAssembly, thêm tất cả các DLL như hạng mục công trình thiết lập để sao chép vào đầu ra.
  2. Tạo thư mục giải pháp AcmeAssembly. Nhanh hơn và đơn giản hơn dự án nguồn 'chỉ nhị phân', nhưng thư mục giải pháp có nhược điểm rất lớn, không có phương tiện nhóm các tệp mà không có tệp giải pháp, tức là bên ngoài VS.
  3. Tạo gói NuGet bao gồm tất cả các tệp nhị phân bắt buộc. Sau đó, ít nhất chúng tôi cũng có một nhóm 'phycical' một phần trong các thư mục packages. Vấn đề của tôi ở đây là tôi chưa bao giờ viết một gói NuGet, nhưng tôi không hỏi làm thế nào để ở đây. Tôi hỏi về ba giải pháp ứng cử viên, và nhiều hơn nữa sẽ được chào đón, và nếu NuGet thắng, tôi sẽ học cách viết một gói.

Tôi không thể đơn giản sử dụng đầu ra của dự án bin\debugbin\release thư mục. Với tôi, đây là những thư mục đầu ra nghiêm ngặt, và không có gì khác ngoài các hội đồng phụ thuộc khác cũng nên được xuất ra ở đó. Việc xóa thư mục bin sẽ hoàn toàn không có hiệu lực đối với bản dựng, do đó chắc chắn không có nơi để lưu trữ các tệp nhị phân.

+2

Tôi bỏ phiếu cho NuGet. Đó là cách ưa thích để phân phối các hội đồng. – Kiliman

+0

Nuget chắc chắn. Giữ điều rất gọn gàng. –

+0

Nó không rõ ràng. Bạn đang hỏi làm thế nào để sử dụng bên thứ 3 của bạn hoặc phân phối? Tôi đã làm việc trên các hệ thống lớn với hàng trăm dự án của bên thứ 3 và hàng trăm dự án. Chúng ta có một thư mục 'bin' nơi chúng ta' 1-'Có tất cả các dll, của chúng ta và bên thứ ba. '2-' chúng ta tham khảo tất cả chúng từ thùng này. '3-' chúng ta xây dựng tất cả các dự án cho bin này. '4-' dự án độc lập được xây dựng thành các thư mục con theo bin. - chúng tôi không bao giờ gặp vấn đề với việc biên dịch, đóng gói hoặc phân phối. Mặc dù, quá trình xây dựng của chúng tôi có sự khác biệt với các lập trình viên xây dựng quy trình –

Trả lời

0

Những lợi thế của NuGet so với các giải pháp khác là:

  1. Hỗ trợ cho versioning
  2. Hỗ trợ được xây dựng trong thành Visual Studio và MSBuild
  3. Không 'thư mục ảo thuật' rằng tất cả các nhà phát triển cần phải có trên máy của họ
0

Tạo thư mục thư viện Acme của bạn (ví dụ: C: \ Source \ Library \ AcmeLibrary). Đặt tất cả các Acme dll của bạn trong thư mục đó. Sau đó tạo Thư mục giải pháp trong VS và thêm các mục hiện có vào nó (không thêm thư mục, nhưng các mục trong thư mục C: \ Source \ Library \ AcmeLibrary vào thư mục giải pháp bằng cách sử dụng menu "Thêm mục hiện tại ..." lựa chọn).

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