第三方dll中奇怪的NullReferenceException:C#

时间:2015-09-24 00:14:59

标签: c# dll visual-studio-2015 nullreferenceexception nmath

我有一个奇怪的错误,它突然开始,这让我发疯。在我的C#应用​​程序中,我正在做一些繁重的数学计算,为此,我使用的是CenterSpace的NMath库。最近,当我从Visual Studio 2015内部启动我的应用程序以进行调试时,每当我调用NMath库方法(以及我们编写的另一个库)时,由于NMath.dll中的NullReferenceExceptions,应用程序开始崩溃。为了隔离问题,我只运行以下非常基本的矩阵乘法代码:

    static void Main(string[] args)
    {
        var mA = new DoubleMatrix(100, 200, 1.5);
        var mB = new DoubleMatrix(200, 50, 1.2);
        var mC = NMathFunctions.Product(mA, mB);
        Console.WriteLine(mC[5, 6]);

        Console.WriteLine("Computation finished");
        Console.ReadLine();
    }

当我因为NullReferenceException而调用“NMathFunctions.Product”方法时,代码在第三行崩溃,并带有以下异常详细信息: enter image description here

它似乎只是在“NMathKernel”对象的构造函数中崩溃,因为没有正确设置对象引用。

最奇怪的是,当我使用Windows资源管理器而不是在Visual Studio中直接从其项目文件夹运行完全相同的程序时,程序运行完美:第四行按预期打印“360.000000001”和“控制台”。 ReadLine()“已到达!

我对这个NullReferenceException错误的原因完全无能为力。它似乎不是第三方DLL相关的问题,因为程序只在从Visual Studio中启动时崩溃。这个错误完全阻止我使用Visual Studio调试我的程序,这是一件痛苦的事情,让我从Visual Studio外部调用“Console.WriteLine”调用它是唯一的选择。这个问题可能是什么原因?可能是我的Build设置搞砸了吗? (顺便说一下,我已经检查过,发现没有任何故障)。任何线索或提示都非常受欢迎。

1 个答案:

答案 0 :(得分:2)

  1. 在VisualStudio中,转到Tools -> Options -> Debugging并确保选中Enable Just My Code选项。
  2. 转到Debug -> Exceptions并取消所有Thrown个cheboxbox。只选中User-unhandled复选框。或者只使用Reset all按钮。