Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自C+的端口+/CLR到C#-缺少方法异常_C#_.net_Managed C++_Abi - Fatal编程技术网

来自C+的端口+/CLR到C#-缺少方法异常

来自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)。程序集版本、文件版本和运行时版本[现在]匹配。我无法确定元数据不

我正在将一个非常古老的库从C++/CLR(2.0运行时,非纯)移植到C#。这是一个具有非常大用户群的公共API,因此我对重要/有意义的ABI破坏(从)非常谨慎:

所讨论的代码很简单:它从一个内部字节缓冲区复制一个
SByte
,但在C++/CLR中通过一个指针上的reintrepret强制转换实现(这意味着引入了IJW)

我得到一个
MissingMethodException
(注意:not
TypeNotFoundException
)。程序集版本、文件版本和运行时版本[现在]匹配。我无法确定元数据不匹配的原因。运行时版本不匹配(2 C++汇编在4上运行),所以我们使用的是<代码> UsRealyyV2RunTimeActudioPrase=“true”< /C> > /P>
我能试试什么吗?非常感谢。

当运行ildasm/ILSpy时,IL在程序集之间表示什么?你得到的是C#声明,而不是IL声明。存在一些不匹配,这会阻止一个方法引用与另一个程序集中的方法定义匹配。这可能非常微妙,就像间接引用另一个版本不匹配的(框架)程序集一样。调整激活策略可能不足以解决此问题。@JeroenMostert我将查看并发布更新。