2009-11-27 34 views
28

Trong quá trình xây dựng cho một công cụ .NET C#, tôi đã sử dụng ILMerge để hợp nhất các assembly thành một exe đơn lẻ.ILMerge DLL: Assembly không được hợp nhất chính xác, vẫn được liệt kê như một tham chiếu ngoài

Gần đây tôi đã thêm thư viện lớp học mới và giờ đây ILMerge không thành công. Tôi đã nhớ để nói với nó để hợp nhất trong DLL mới!

Nó hiện đang đem lại cho tôi lỗi này, mà tôi không thực sự hiểu:

ILMerge.Merge: Việc lắp ráp 'DataObjects' không được sáp nhập trong một cách chính xác. Nó vẫn được liệt kê dưới dạng tham chiếu ngoài trong mục tiêu .

Tất cả các tham chiếu lắp ráp tôi đã thực hiện bằng cách sử dụng tham chiếu 'dự án' và nó không bị lỗi trong quá khứ.

Có ai có thể giải thích lỗi này cho tôi hoặc đề xuất giải pháp thay thế không?

+0

Công cụ này có cho bạn biết lắp ráp nguồn không? Hoặc bạn có thể sử dụng .Net phản xạ để tìm thấy điều đó? –

+0

Đó là nghĩa đen chỉ outputting dòng trên. Một vài trong số các assembly mà tôi đang cố gắng kết hợp tham chiếu đến 'DataObjects' assembly, nhưng đây là trường hợp khá lâu, và chỉ khi thêm một assembly mới tham chiếu đến nó mà tôi nhận được lỗi trên. –

+1

Bạn có tìm thấy giải pháp cho vấn đề này không? – loraderon

Trả lời

34

Tôi đã phải sử dụng đối số /closed. Theo các tài liệu chính thức:

đóng

Khi điều này được thiết lập trước khi gọi Merge, sau đó là "đóng cửa bắc cầu" của hội đầu vào được tính toán và bổ sung vào danh sách các cụm đầu vào. Một assembly được coi là một phần của việc đóng cửa bắc cầu nếu nó được tham chiếu, hoặc trực tiếp hoặc gián tiếp, từ một trong những ban hội đầu vào quy định và nó có một tài liệu tham khảo bên ngoài để một trong những hội đầu vào, hoặc một trong các các hội đồng có tham chiếu như vậy. phức tạp, nhưng đó là cuộc sống ...

3

tôi nhận được một thông báo lỗi tương tự khi cố gắng để xuất bản một ứng dụng web mà sáp nhập tất cả các kết quả đầu ra để một hội duy nhất:

xảy ra lỗi khi sáp nhập hội : ILMerge.Merge: assembly mục tiêu liệt kê chính nó như là một tham chiếu bên ngoài.

Điều này xảy ra nếu tên lắp ráp bạn đang hợp nhất để khớp với tên lắp ráp của ứng dụng web dưới Properties > Application. Thay đổi tên lắp ráp đầu ra nên sửa chữa nó.

+0

Cảm ơn vì điều này! –

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