2009-08-17 33 views
8

Tôi cần trợ giúp về giải pháp và tổ chức dự án Visual Studio.Các phương pháp hay nhất tổ chức giải pháp Visual Studio

Tôi có giải pháp với một số dự án. Tất cả chúng đều được viết bằng C# và được biên dịch thành các thư viện để GUI sử dụng. Một số thư viện này cũng phụ thuộc với người khác. Ví dụ, TestExecutive cần LoggingFramework, cần LoggingFramework.

Cách tổ chức tốt nhất là gì? Tôi đang suy nghĩ về một thư mục assembly để giữ các tệp nhị phân của thư viện ở một nơi. Một cái gì đó như:

Solution 
    | 
    |-- TestExecutive 
    |-- LoggingFramework 
    |-- assemblies 

Ngoài ra còn có một vấn đề khác. Một trong những dự án sử dụng một dll C gốc. Tôi phải đặt thư viện này ở đâu? Với hội đồng của Librarie hoặc với buổi thực thi cuối cùng?

EDIT:

Ok, bây giờ giả sử tôi có chương trình WinForms chạy. Tôi có mã nguồn và mã nhị phân hỗn hợp. Tôi cần những tính năng nào để tạo ra thứ gì đó mà tôi có thể phân phối? Tôi có nghĩa là, với tất cả các thư viện và các tập tin cấu hình, nhưng không có mã nguồn. Tôi đã làm điều này trước với trình cài đặt Nullsoft, nhưng tôi không biết nếu studio trực quan có thể giúp bạn làm điều đó.

+1

Một trong các loại dự án của bạn là một dự án Trình cài đặt. Chỉ cần thêm điều đó vào giải pháp của bạn. Có rất nhiều hướng dẫn nằm rải rác trên web hoặc trên MSDN. – Clyde

+0

bất kỳ giải pháp cuối cùng nào có mẫu mã nguồn đầy đủ hoạt động về nó? – Kiquenet

Trả lời

8

Một vài điều ở đây:

  1. Khi một dự án phụ thuộc vào nhau, bạn có thể thiết lập rằng sự phụ thuộc trong Visual Studio. Nhấp chuột phải vào một dự án và chọn Phụ thuộc dự án ...

  2. Đối với các hội đồng .NET khác KHÔNG phải là một phần của giải pháp của bạn (công cụ của bên thứ 3, v.v.) thư mục song song với các dự án. Sau đó, tôi thiết lập tham chiếu lắp ráp trong mỗi dự án với "Copy Local" được đặt thành true và nó hoạt động tốt.

  3. Đối với các tệp gốc C, có một chút khác biệt. Không có tham chiếu trực tiếp đến chúng trong phần tham chiếu của trình khám phá giải pháp. Trình biên dịch sẽ không xem xét dll để kiểm tra p của bạn/gọi tài liệu tham khảo hoặc bất cứ điều gì như thế. Bạn chỉ cần đảm bảo dll là một phần của triển khai trên web cấp cao nhất của bạn hoặc dự án winforms. Đó là một tập tin nội dung giống như một tập tin css hoặc hình ảnh hoặc một cái gì đó. Chỉ cần thêm nó như là một tập tin trong dự án và chắc chắn rằng "Xây dựng hành động" được thiết lập để nội dung để Visual studio biết bắt chước y hệt các tập tin như là một phần của việc triển khai

5

tôi đặt thư mục giải pháp của tôi lên một chút khác với bạn. Ở cấp cao nhất tôi có các thư mục sau:

\build 
\lib 
\src 

Thư mục xây dựng có các đoạn mã xây dựng (NAnt, MSBuild, v.v ...). Bất kỳ hội đồng bên thứ 3 nào (hoặc bất kỳ thứ gì tôi không xây dựng trong giải pháp) đều được đưa vào thư mục lib, trong một thư mục con thích hợp. Ví dụ, tôi sẽ có các thư mục log4net, NUnit, RhinoMocks trong thư mục lib, mỗi thư mục chứa các tệp cần thiết cho sự phụ thuộc đó. Thư mục src có giải pháp và tất cả các tệp dự án.

Tôi thích cấu trúc này vì nó phân định rõ ràng giữa mã dự án và các nội dung khác do dự án yêu cầu. Ngoài ra, tôi thường thiết lập một số nhiệm vụ xây dựng tùy chỉnh để sao chép các assembly kết quả cho dự án của tôi vào thư mục \ deploy hoặc \ lib \.Bằng cách này bạn không phải tìm kiếm trong thư mục \ src \\ bin \\ để có được một assembly được xây dựng hoặc toàn bộ dự án; tuy nhiên điều này có vẻ hơi vượt quá phạm vi câu hỏi của bạn.

Btw ... Tôi không tự mình xây dựng cấu trúc này, tôi nghĩ tôi đã bắt đầu sử dụng Tree Surgeon và phát triển quy trình của mình từ đó.

+0

Không nằm ngoài phạm vi của EDIT ;-) Cảm ơn thông tin. – yeyeyerman

+0

Cây tầm phào "Cây Phát triển" loạt blog thực sự tốt. –

+0

Đã cho tôi một thời gian để khai thác những bài đăng đó. Bạn có thể tìm thấy chúng [ở đây] (https://mikebroberts.com/articles/how-to-setup-a-net-development-tree/). – Ryogi

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