我收到以下警告:



我的程序集包含对Accessibility.dll和System.Windows.Forms.dll的引用。为什么会收到此警告?

顺便说一句,Accessibility.dll具有“嵌入互操作类型= true”,而System.Windows.Forms.dll将其设置为false。

最佳答案

根据MSDN:

“您已经添加了对具有Embed Interop Types属性设置为True的程序集(assembly1)的引用。这指示编译器嵌入该程序集的interop类型信息。但是,编译器无法嵌入该程序集的interop类型信息,因为另一个您引用的程序集(assembly2)也引用该程序集(assembly1),并且Embed Interop Types属性设置为False。”

解决此警告

要嵌入两个程序集的互操作类型信息,请将对assembly1的所有引用上的“嵌入互操作类型”属性设置为True。

这意味着您必须在System.Windows.Forms.dll上更改'Embed Interop Types = true'

要么

要删除警告,可以将assembly1的Embed Interop Types属性设置为False。在这种情况下,互操作类型信息由主互操作程序集(PIA)提供。

10-08 09:18