【问题标题】:visual studio debug fatal error 0x8007000e with .NET 4.5 while debugging .NET 4.0 applicationVisual Studio 在调试 .NET 4.0 应用程序时使用 .NET 4.5 调试致命错误 0x8007000e
【发布时间】:2012-11-19 11:45:48
【问题描述】:

安装 VS2012 和 .NET 4.5 后,Visual Studio 2010 和 2012 在调试我们的应用程序时都开始挂起,出现致命错误 0x8007000e。我知道这个错误意味着进程内存不足,我可以在任务管理器上看到 devenv.exe 进程内存不断增长,直到达到 3GB 限制。此时出现异常。

在没有 .Net 4.5 的机器上一切正常。我们的应用程序内置在 .Net 4.0 中,迁移到 .Net 4.5 不是一种选择。 有什么解决方法吗?我们想开始使用 VS2012,但我们无法将所有应用程序迁移到 .Net 4.5。

感谢您的帮助,

努诺佩雷拉

【问题讨论】:

  • 您不必将应用程序迁移到 4.5。任何在 4.0 上工作的东西都应该在 4.5 上工作。并且您的项目应该在仅使用 VS2012 的机器上打开和编译,而无需重定向到 4.5。
  • Anand,我知道我不必将应用程序迁移到 4.5。我想你不明白我们的问题。在安装了 .net4.5 的机器上调试我们在 .net4.0 中构建的应用程序时,Visual Studio 崩溃,因为 devenv 进程试图使用超过 3GB 的内存。这意味着我们无法在 .net 4.5 中开始开发新项目,因为安装 .net 4.5 我们将无法调试现有应用程序。
  • 欢迎对此提供任何帮助。我无法找到有关此主题的任何信息。在调试我们的 .net 4.0 应用程序时,任何具有 .net 4.5 的机器都会导致 VS 崩溃。
  • 请将环境详细信息发送至 netfx45compat@microsoft.com。
  • 您的应用程序是否在调用 MemoryFailPoint API?或者您是否在堆栈跟踪中看到此 API 被调用?您可以向我们提供复制申请吗?所有这些信息都将有助于在内部调查问题。

标签: visual-studio .net-4.0 .net-4.5 fatal-error


【解决方案1】:

如果您在 .NET 4.5 框架下运行,但在 .NET 4 中编译,您可能想尝试将其添加到您的配置文件中:

<configuration>
  <system.xml.serialization>
    <xmlSerializer useLegacySerializerGeneration="true"/>
  </system.xml.serialization>
</configuration>

正如在此链接中向我建议的那样:

Serialization breaks in .NET 4.5

【讨论】:

  • 在发布上述解决方案后,我也找到了这个解决方案。我认为这是一个更好的解决方案,因为它不需要将项目设置更改为所有已序列化对象的项目。
【解决方案2】:

我收到了 Kevin Halverson 关于此问题的反馈。好像和XmlSerialization有关。生成静态序列化程序集可防止错误发生。可以使用“sgen.exe”、“svcutil.exe /t:xmlSerializer”或通过在 Visual Studio 中打开项目属性中的“生成序列化程序集”选项来生成静态序列化程序集。

感谢 Anand 和 Kevin 提供的所有帮助。

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多