2011-11-16 40 views
48

Tôi nhận được cảnh báo sau đây:"Tham chiếu được tạo ra cho lắp ráp interop nhúng" nghĩa là gì?

Một tài liệu tham khảo được tạo ra để interop lắp ráp nhúng c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Accessibility.dll vì một tham chiếu gián tiếp để lắp ráp mà được tạo ra bởi lắp ráp c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll. Hãy xem xét việc thay đổi thuộc tính 'Nhúng Interop Types' trên một trong hai assembly.`

Lắp ráp của tôi chứa tham chiếu đến cả Accessibility.dll và System.Windows.Forms.dll. Tại sao tôi nhận được cảnh báo này?

Btw, tệp Accessibility.dll có 'Nhúng loại Interop = true' trong khi System.Windows.Forms.dll đã đặt thành false.

Trả lời

55

mỗi MSDN:..

"Bạn đã thêm một tham chiếu đến một hội đồng (assembly1) mà có các loại Nhúng Interop hữu thiết lập là True này ra lệnh cho trình biên dịch để nhúng loại interop thông tin từ hội đồng Tuy nhiên, trình biên dịch không thể nhúng thông tin kiểu interop từ assembly đó bởi vì assembly khác mà bạn đã tham chiếu (assembly2) cũng tham chiếu assembly đó (assembly1) và có thuộc tính Embed Interop Types được đặt thành False. "

Để giải quyết cảnh báo này

Để nhúng loại interop thông tin cho cả lắp ráp, thiết lập Nhúng Interop hữu loại trên tất cả các tài liệu tham khảo để assembly1 True.

Điều này có nghĩa bạn phải thay đổi 'Nhúng Interop loại = true' trên System.Windows.Forms.dll

hoặc

Để loại bỏ các cảnh báo, bạn có thể thiết lập các loại Nhúng Interop tài sản của assembly1 thành False. Trong trường hợp này, thông tin loại interop được cung cấp bởi một hội đồng interop chính (PIA).

+2

Mặc dù những gì MSDN nói, tôi không nghĩ rằng bạn đang phải thay đổi 'Nhúng Interop Types' trên các tệp DLL đi kèm với Windows. Bài viết MSDN đó hướng tới các hội đồng nằm dưới sự kiểm soát của chính bạn. –

+13

Tôi đồng ý, nhưng khi tham chiếu đến 'Accessibility.dll' được thêm vào, 'Nhúng loại interop' được đặt thành ** true **. Khi tôi thay đổi nó trở lại ** false **, sự biến mất đã biến mất. –

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