Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# C(.NET 4.0)应用程序的一个引用从.NET 2.0升级到.NET 4.0时,会引发System.MissingMethodException_C#_.net_.net 4.0_Interop_.net 2.0 - Fatal编程技术网

C# C(.NET 4.0)应用程序的一个引用从.NET 2.0升级到.NET 4.0时,会引发System.MissingMethodException

C# C(.NET 4.0)应用程序的一个引用从.NET 2.0升级到.NET 4.0时,会引发System.MissingMethodException,c#,.net,.net-4.0,interop,.net-2.0,C#,.net,.net 4.0,Interop,.net 2.0,我有一个最初用.NET4.0编写的应用程序。此应用程序引用了一个针对.net 2.0的库。最近,我不得不将这个库升级到.NET4.0,而不更改公开方法的任何签名。但是将库升级到.NET4.0时,调用该库的exe会抛出一个异常 Unhandled Exception: System.MissingMethodException: Method not found: 'Void InteropSpace.myClass.TableSystem.String[,]ByRef,System.Stri

我有一个最初用.NET4.0编写的应用程序。此应用程序引用了一个针对.net 2.0的库。最近,我不得不将这个库升级到.NET4.0,而不更改公开方法的任何签名。但是将库升级到.NET4.0时,调用该库的exe会抛出一个异常

Unhandled Exception: System.MissingMethodException: Method not found: 
'Void InteropSpace.myClass.TableSystem.String[,]ByRef,System.String[,]'。在控制台Application 1.Program.MainString[]参数处

我在ILSpy的.NET2.0版本的库和.NET4.0版本的库中检查了这个方法表。函数的签名尚未更改。我有点恼火为什么我不能理解这种奇怪的行为

更新: 旧库.net 2.0中导出函数的签名:

.method public hidebysig static 
    void Table (
        [out] string[, ]& TableControl2,
        string[, ] TableControl
    ) cil managed 
新库.net 4.0中导出函数的签名:

.method public hidebysig static 
    void Table (
        [out] string[0..., 0...]& TableControl2,
        string[0..., 0...] TableControl
    ) cil managed 
我不完全相信这就是它失败的原因。两者的区别是什么

string[0..., 0...]


在.NET4中可能存在该方法的新重载。这篇文章可能会有帮助


确保您在ILSpy中浏览的程序集和在运行时加载的程序集是相同的程序集。我通过将调试器附加到exe来完成此操作,并检查它是否确实加载了所需的程序集。我在库中调用的函数不是系统定义的函数。从.net 2.0升级到.net 4.0时,此函数的定义或签名未更改。我希望这能让事情变得更清楚。
string[, ]