第三方 dll 中的奇怪 NullReferenceException:C#
Weird NullReferenceException in third party dll: C#
我有一个奇怪的错误,它突然开始,让我抓狂。在我的 C# 应用程序中,我正在进行一些繁重的数学计算,为此,我使用了 CenterSpace 的 NMath 库。最近,当我从 Visual Studio 2015 内部启动我的应用程序以调试它时,应用程序开始崩溃,因为 NMath.dll 中的 NullReferenceExceptions,每当我调用 NMath 库方法(以及我们拥有的另一个库也写了)。为了隔离问题,我只是 运行 以下非常基本的矩阵乘法代码:
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 Explorer 直接从它的项目文件夹中,而不是在 Visual Studio 中,程序 运行 ]s 完美:第四行按预期打印“360.000000001”,达到 "Console.ReadLine()"!
我完全不知道这个 NullReferenceException 错误的原因。这似乎不是第三方 dll 相关的问题,因为程序只有在 Visual Studio 中启动时才会崩溃。这个错误完全阻止了我使用 Visual Studio 调试我的程序,这是一件痛苦的事情,让我唯一的选择是从 Visual Studio 外部使用 "Console.WriteLine" 调用调试它。这个问题的原因是什么?是不是我的构建设置搞砸了? (顺便说一句,我已经检查过,没有发现任何异常)非常欢迎任何线索或提示。
- 在 VisualStudio 中转到
Tools -> Options -> Debugging
并确保选中 Enable Just My Code
选项。
- 转到
Debug -> Exceptions
并取消选中所有 Thrown
复选框。仅选中 User-unhandled
个复选框。或者只使用 Reset all
按钮。
我有一个奇怪的错误,它突然开始,让我抓狂。在我的 C# 应用程序中,我正在进行一些繁重的数学计算,为此,我使用了 CenterSpace 的 NMath 库。最近,当我从 Visual Studio 2015 内部启动我的应用程序以调试它时,应用程序开始崩溃,因为 NMath.dll 中的 NullReferenceExceptions,每当我调用 NMath 库方法(以及我们拥有的另一个库也写了)。为了隔离问题,我只是 运行 以下非常基本的矩阵乘法代码:
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 Explorer 直接从它的项目文件夹中,而不是在 Visual Studio 中,程序 运行 ]s 完美:第四行按预期打印“360.000000001”,达到 "Console.ReadLine()"!
我完全不知道这个 NullReferenceException 错误的原因。这似乎不是第三方 dll 相关的问题,因为程序只有在 Visual Studio 中启动时才会崩溃。这个错误完全阻止了我使用 Visual Studio 调试我的程序,这是一件痛苦的事情,让我唯一的选择是从 Visual Studio 外部使用 "Console.WriteLine" 调用调试它。这个问题的原因是什么?是不是我的构建设置搞砸了? (顺便说一句,我已经检查过,没有发现任何异常)非常欢迎任何线索或提示。
- 在 VisualStudio 中转到
Tools -> Options -> Debugging
并确保选中Enable Just My Code
选项。 - 转到
Debug -> Exceptions
并取消选中所有Thrown
复选框。仅选中User-unhandled
个复选框。或者只使用Reset all
按钮。