【问题标题】:VS10 Crashes When Doing “Build” or “Rebuild” of C++ ProjectVS10 在进行 C++ 项目的“构建”或“重建”时崩溃
【发布时间】:2010-12-01 16:57:41
【问题描述】:

我在programmers first 上发布了这个,但被告知它属于这里。有趣,我不这么认为。

我在 Windows Server 2008 R2 机器上安装了 VS10,还有几个其他版本的 VS 可以追溯到几年前。这是我们的生产构建机器。

当我加载或创建任何 C++ 项目并执行重建或清理时,IDE 崩溃。在崩溃详细信息中,我看到了这一点:

我在网络上看到了其他报告似乎完全相同的错误 (example)。除了开票的建议外,我没有看到任何解决方案。

有其他人遇到并解决过这个问题吗?我已经向 MS 开了一张票,但我也在这里发布了我的基地。

编辑:

我按照 cmets 中的建议运行了一个日志文件。这些是我加载 VS 后出现的唯一条目,因此这包括构建和崩溃:

  <entry>
    <record>229</record>
    <time>2010/12/01 19:35:39.804</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>Entering function CVsPackageInfo::HrInstantiatePackage</description>
    <guid>{68939055-38E0-4D17-92CB-8909710D8178}</guid>
  </entry>
  <entry>
    <record>230</record>
    <time>2010/12/01 19:35:39.836</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>Begin package load [Windows Forms Designer Hosting Package]</description>
    <guid>{68939055-38E0-4D17-92CB-8909710D8178}</guid>
  </entry>
  <entry>
    <record>231</record>
    <time>2010/12/01 19:35:39.882</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>End package load [Windows Forms Designer Hosting Package]</description>
    <guid>{68939055-38E0-4D17-92CB-8909710D8178}</guid>
  </entry>

【问题讨论】:

  • 这完全属于超级用户! (jk)
  • 还可以先cleanbuild吗?
  • 我的 win7 系统出现了同样的错误。刚刚点了红叉。一切正常。 MSVS 2010 继续运行并构建了我的解决方案。
  • @Default: 呵呵,实际上可能是这样

标签: c++ visual-studio-2010 crash


【解决方案1】:

直接联系 MS 支持如何?如果这阻碍了您的工作,您可以推动他们进行修复(不过不知道成本,可能取决于您的许可证的产品和特性...)。

或者,您可以在命令行中构建您的解决方案:打开 VS 2010 命令提示符(快捷方式位于开始菜单中的某处):

msbuild yoursolution.sln /p:Configuration=Debug

那不应该使用 devenv.exe(这是在这里崩溃的东西)并直接调用工具。

【讨论】:

  • +1:我贴了一张票。如果我没有按照您的建议尽快得到答复,我可能会联系 MSDN 电话支持。不幸的是,我们的自动生成器使用我认为的 GUI。我可能可以从 cmd 行编译,但我需要 IDE 才能工作。
  • 你能发布生成的日志文件吗?在这里查看如何生成:blog.meidianto.com/2010/05/12/…
  • @Madhur Ahuja:嗯,我刚刚生成了日志文件。它很大——太大而无法发布。我没有看到任何错误。你能推荐一些我应该搜索的东西吗?
【解决方案2】:

P8 存储桶有一个奇怪的价值,至少与我的机器相比是这样。检查this post 以了解对崩溃方法进行逆向工程的方法。崩溃的程序集存储在我机器上的 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Shell.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a 目录中。

P7 存储桶(请注意,您的存储桶与链接的存储桶不匹配)指向 ServiceProvider.GetService()。 P8 存储桶给出的 IL 偏移量为 0x4b,但我看到该方法在 0x41 处结束。但是,我还没有弄清楚当 JIT 编译的代码得到优化时,它到底有多准确。

如果这在任何地方都是准确的,那么您就没有多少线索了。 GetService() 方法是无可救药的通用方法。虽然看起来它确实想出了一个没有在演员阵容中幸存下来的坏人。这是插件可以搞砸的那种东西。

顺便说一句,这实际上不会影响构建输出,MSBuild.exe 作为单独的进程运行。

【讨论】:

  • +1 不幸的是,我需要 IDE 才能让我们的工具正常工作
【解决方案3】:

对于仍然遇到此问题的任何人,解决我的问题的答案是我试图从我的计算机上完全擦除 Internet Explorer - 导致导致 devenv 崩溃的 DLL 调用失败。

这是他们的官方解决方案页面: http://support.microsoft.com/kb/983279

我对 Microsoft 的问题是...为什么在任何情况下都依赖 Internet Explorer 来编译应用程序?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2020-04-29
    相关资源
    最近更新 更多