我们目前在.NET 3.5中使用v90(VS2008)编译器编译了一个C ++ / CLI项目。一切正常。但是当我使用v10编译器(VS2010)将项目更改为.NET 4.0时,会弹出这些链接器错误:
错误LNK2022:元数据操作失败(8013118D):不一致 重复类型的布局信息(tagTOUCHINPUT): (0x02000743)。 ... \ MainWindow.obj
错误LNK2022:元数据 操作失败(8013118D):中的布局信息不一致 重复类型(tagTOUCHINPUT):( 0x0200072d)。 ... \ StdAfx.obj的
tagTOUCHINPUT
结构似乎是MFC的一部分,该项目正在大量使用。
我尝试使用ildasm -tokens
,但它只是在空错误窗口崩溃。
我没有其他想法如何调试这个项目。主要是因为我们继承了它并且它很老了。它也很大,这意味着隔离问题可能非常困难。
编辑:经过一些工作,我很确定我从项目中删除了对本机库的所有引用,除了那些由VS自动添加的引用。问题依然存在。
答案 0 :(得分:0)
我们的解决方案有一些旧的基于MFC的C ++库,由于某些原因切换到/ clr编译。 当我的解决方案中的所有项目切换到/ clr编译时,我收到类似的错误消息。 在没有/ clr标志的情况下编译主项目(.exe)时,错误消失。