2

我正在使用 Visual Studio 2013 社区版编写 C# 项目。

我的程序使用 HtmlAgilityPack 解析 HTML 并引发堆栈溢出异常。我一直在尝试更改堆栈大小,但我看到的解决方案属性窗口只有屏幕截图中显示的选项:

缺少 Visual Studio 2013 配置属性

我读过其他一些文章,其中说 C# 项目的解决方案属性面板的可用选项与 C++ 不同。我在哪里可以配置我的 C# 程序的堆栈大小?

4

1 回答 1

0

看来这背后的原因是堆栈溢出。该问题可以通过增加堆栈大小来解决。在 Visual Studio 中,您可以使用 /STACK:reserve[,commit] 来执行此操作。阅读 MSDN 文章

更详细的解释:

在 Windows 平台下,堆栈大小信息包含在可执行文件中。它可以在 Visual Studio C++ 编译期间设置。或者,微软提供了一个程序 editbin.exe 可以直接更改可执行文件。以下是更多详细信息:

Windows(编译期间):

Select Project->Setting.
Select Link page.
Select Category" to "Output.
Type your preferred stack size in Reserve: field under Stack 
allocations. eg, 32768 in decimal or 0x20000 in hexadecimal.

Windows(修改可执行文件):

Microsoft Visual Studio 中包含两个程序,dumpbin.exe 和 editbin.exe。运行 dumpbin /headers executable_file,你可以在可选的 header 值中看到堆栈保留信息的大小。运行 editbin /STACK:size 以更改默认堆栈大小。

于 2015-11-12T12:11:56.750 回答