2009-05-21 3 views
5

Trong một ứng dụng .net liên quan đến một số dự án trong một giải pháp, tôi có một dự án với không gian tên được đặt thành Company.Product.UI và một dự án khác với Company.Product.UI.WebPages. Vấn đề của tôi là hai dll kết quả từ việc xây dựng hai dự án. Làm thế nào tôi có thể có một dll duy nhất và vẫn bảo tồn cấu trúc giải pháp hiện tại. Tôi sử dụng Visual Studio 2008 và C#.Lắp ráp đơn từ nhiều dự án

+1

Xem thêm http://stackoverflow.com/questions/1878807/visual-studio-2008-creating-single-dll-from-solution-with-many-projects –

Trả lời

11

Bạn sẽ phải hợp nhất hai dự án vào một dự án hoặc sử dụng công cụ như ILMerge để hợp nhất các cụm kết quả thành một assembly duy nhất.

ILMerge là một tiện ích có thể được sử dụng để hợp nhất nhiều hội đồng .NET thành một cụm duy nhất. Nó được tự do có sẵn để sử dụng từ trang Công cụ & Trang tiện ích tại Trung tâm Nhà phát triển Microsoft .NET Framework.

Nếu bạn muốn tự động hoá ILMerge như một nhiệm vụ MSBuild sau đó tôi sẽ đề nghị bạn hãy xem ilmerge-tasks:

Quan tâm đến việc sử dụng ILMerge trong một tự động xây dựng? Công việc ILMerge containts hai dự án có thể xây dựng mà sẽ cho phép bạn truy cập ILMerge dưới dạng nhiệm vụ từ cả MSBuild và NAnt. Nó thậm chí bao gồm một sự kiện sau khi xây dựng mà kết hợp ILMerge và dll nhiệm vụ để mà bạn có thể sử dụng tác vụ mà không có ILMerge.exe hiện diện.

+1

Tôi có thể tích hợp ILMerge trong quá trình tạo Visual Studio không để tôi tự động hóa công việc? – kjv

+0

@kjv Đó là những gì mà bit ilmerge-taks nói về –

1

Tôi đoán bạn có thể tạo tệp dự án mới chứa tất cả các tệp từ hai dự án. Bằng cách đó bạn có thể giữ cấu trúc hiện tại để phát triển và sử dụng tệp dự án đã hợp nhất để xây dựng đầu ra được phát hành từ dự án. Các tệp dự án là các tệp xml khá đơn giản, vì vậy nếu bạn mở một trong các tệp đó trong trình soạn thảo văn bản, có thể bạn sẽ tìm ra cách chúng hoạt động khá nhanh. Tuy nhiên, nhược điểm rõ ràng của phương pháp này là bạn sẽ cần phải duy trì tập tin dự án thứ ba này khi các tập tin được thêm vào hoặc bị loại bỏ trong một dự án, nhưng nếu nó không xảy ra thường xuyên, nó có thể hoạt động tốt hơn. tôi nghĩ vậy.

0

Có cách đơn giản để thực hiện việc này, nhưng nó có thể không phải là cách tốt nhất. Tạo một giải pháp mới với tên của dll mà bạn muốn. Tạo cấu trúc thư mục trong dự án này giống như tên của hai dự án. Sau đó, trên thư mục cụ thể, hãy thực hiện 'Thêm mục hiện có'. Thêm các tệp cs trong dự án của tên đó. Khi bạn thêm các tệp, hãy chọn 'Thêm làm liên kết' trên nút Thêm (có một trình đơn thả xuống nơi bạn có thể chọn bên cạnh nút thêm). Tiếp tục làm điều đó và xây dựng. Bạn sẽ có dll.

ví dụ: Nếu bạn có một dự án gọi là A và được gọi là B và bạn muốn kết hợp chúng thành một dll được gọi là C. Tạo một dự án mới có tên C. Thêm một thư mục trong dự án này được gọi là A và một thư mục khác có tên B. Bây giờ nói dự án A có cs tệp X.cs và B có tên là Y.cs. Trên thư mục có tên A, nhấp chuột phải và thêm mục hiện có. Chuyển đến Project A và chọn X.cs. Bên cạnh nút Thêm, bạn sẽ thấy một mũi tên xuống. Nhấp vào đó và chọn Thêm làm liên kết. Làm tương tự cho B. Xây dựng dự án này và bạn sẽ nhận được bạn dll trong thư mục bin.