我有一个奇怪的错误,它突然开始,让我发疯。在我的 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”方法时,代码在第三行崩溃,异常详细信息如下:
它似乎只是在“NMathKernel”对象的构造函数中崩溃,因为没有正确设置对象引用。
最奇怪的是,当我使用 Windows 资源管理器而不是在 Visual Studio 中直接从其项目文件夹中运行完全相同的程序时,程序运行完美:第四行按预期打印“360.000000001”和“Console.ReadLine() “ 到达了!
我对这个 NullReferenceException 错误的原因一无所知。这似乎不是与第三方 dll 相关的问题,因为该程序仅在从 Visual Studio 中启动时才会崩溃。这个错误完全阻止了我使用 Visual Studio 调试我的程序,这是一件痛苦的事情,让我只能从 Visual Studio 外部使用“Console.WriteLine”调用来调试它。这个问题的原因是什么?我的构建设置可能有问题吗?(顺便说一句,我已经检查过并没有发现任何异常)任何线索或提示都非常受欢迎。