我正在使用C#(wpf)遇到此错误。此链接没有用
仅仅为了解释程序的结构,我可以说:
我正在使用由外部公司制造的图书馆。我们可以称之为PCDLRN
在解决方案中,我有一个由我自己创建的项目,其中包括前一个lib中的类型。在我的库中,我定义:
public ObservableCollection<PCDLRN.DimensionCmd> obcPcdlrnDimensionCommands = new ObservableCollection<PCDLRN.DimensionCmd>();
为了在我的主程序中使用。简而言之:
PCDLRN-> MYLIB obcPcdlrnDimensionCommands->我的程序myPcd.obcPcdlrnDimensionCommands
在我的程序中,我想访问前面提到的ObservableCollection,但是它没有构建,给出了标题错误。
-编辑---正如我所建议的,通过更改图片中的道具,我已经从Embedded = true更改为false,但是错误仍然存在
正如WasGoodDone所述,您需要对用于泛型的两个(所有)程序集使用相同的类。
换句话说,如果您有assembly1
,引用了一些interopAssembly
,而assembly2
,引用了相同的interopAssembly
并且切换embedded interop type
到true
,则您将有来自的两个类型的副本interopAssembly
。
如果要使用从assembly1
到的一些交叉引用assembly2
,.NET无法解析它,因为从它们的角度来看,这些类是不同的。
当关闭嵌入式选项时,装配将引用包含互操作类型的另一个装配。这样,您就可以在不同的库中使用互操作类型。
因此,如果您遇到上述问题,则意味着您至少有两个引用PCDLRN的程序集,并且必须关闭embedded interop type
所有这些程序集。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句