来自C+的端口+/CLR到C#-缺少方法异常
我正在将一个非常古老的库从C++/CLR(2.0运行时,非纯)移植到C#。这是一个具有非常大用户群的公共API,因此我对重要/有意义的ABI破坏(从)非常谨慎: 所讨论的代码很简单:它从一个内部字节缓冲区复制一个来自C+的端口+/CLR到C#-缺少方法异常,c#,.net,managed-c++,abi,C#,.net,Managed C++,Abi,我正在将一个非常古老的库从C++/CLR(2.0运行时,非纯)移植到C#。这是一个具有非常大用户群的公共API,因此我对重要/有意义的ABI破坏(从)非常谨慎: 所讨论的代码很简单:它从一个内部字节缓冲区复制一个SByte,但在C++/CLR中通过一个指针上的reintrepret强制转换实现(这意味着引入了IJW) 我得到一个MissingMethodException(注意:notTypeNotFoundException)。程序集版本、文件版本和运行时版本[现在]匹配。我无法确定元数据不
SByte
,但在C++/CLR中通过一个指针上的reintrepret强制转换实现(这意味着引入了IJW)
我得到一个MissingMethodException
(注意:notTypeNotFoundException
)。程序集版本、文件版本和运行时版本[现在]匹配。我无法确定元数据不匹配的原因。运行时版本不匹配(2 C++汇编在4上运行),所以我们使用的是<代码> UsRealyyV2RunTimeActudioPrase=“true”< /C> > /P>
我能试试什么吗?非常感谢。当运行ildasm/ILSpy时,IL在程序集之间表示什么?你得到的是C#声明,而不是IL声明。存在一些不匹配,这会阻止一个方法引用与另一个程序集中的方法定义匹配。这可能非常微妙,就像间接引用另一个版本不匹配的(框架)程序集一样。调整激活策略可能不足以解决此问题。@JeroenMostert我将查看并发布更新。