Vb.net 无法跨程序集边界使用,因为它具有嵌入互操作类型的泛型类型参数

Vb.net 无法跨程序集边界使用,因为它具有嵌入互操作类型的泛型类型参数,vb.net,Vb.net,在VB.Net中将Sub更改为函数时,我遇到了这个错误 类型System.Collection.Generic.List(mshtml.IHTMLDocument2的)不能跨程序集边界使用,因为它具有嵌入互操作类型的泛型类型参数 有人知道如何解决这个问题吗?将返回类型从List(mshtml.IHTMLDocument2)更改为IList(mshtml.IHTMLDocument2)或IEnumerable(mshtml.IHTMLDocument2)解决了这个问题。我通过确保所有程序集的“嵌入

在VB.Net中将Sub更改为函数时,我遇到了这个错误

类型System.Collection.Generic.List(mshtml.IHTMLDocument2的)不能跨程序集边界使用,因为它具有嵌入互操作类型的泛型类型参数


有人知道如何解决这个问题吗?

将返回类型从List(mshtml.IHTMLDocument2)更改为IList(mshtml.IHTMLDocument2)IEnumerable(mshtml.IHTMLDocument2)解决了这个问题。

我通过确保所有程序集的“嵌入互操作类型”都设置为FALSE来解决这个问题


通常,当您使用COM库时,该参数默认设置为true。

它修复了该参数,因为您不再有对该类型的引用,而只是该类型实现的接口。如果您解释了“嵌入互操作类型”的实际含义/作用,我会对此表示支持。并不是说我自己查不到它,但我不认为应该轻率地推荐可能产生深远影响的程序集属性更改。@Loppside它不是轻率地推荐的。推荐给那些得到OP错误的人。我不认为此建议能得到比这更直接的指导。当我尝试此解决方案时,它破坏了我的库,因为我得到以下错误:非发票成员“IHTMLElement.children”不能像方法一样使用。因此,这可能会解决OP的问题,但就@Lopsided而言,它确实有副作用。