【问题标题】:Child node "2" exited prematurely子节点“2”过早退出
【发布时间】:2016-04-26 15:24:03
【问题描述】:

我最近将我的 Windows 8.1 应用程序重新定位到了 Windows 10。我在构建 UI 项目时遇到了这个错误,

"MSBUILD : error MSB4166: Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt."

这不是特别有用,所以我去 %temp% 寻找所说的失败日志,它不存在。我在寻找错误的“临时”目录吗?

是什么导致了这个错误?我可以构建我的支持库项目而不会出现此错误。

【问题讨论】:

    标签: msbuild visual-studio-2015 windows-10-universal


    【解决方案1】:

    在我的情况下,重启 VS 2019 解决了这个问题。

    【讨论】:

      【解决方案2】:

      我遇到了同样的错误。在我的情况下,MSBuild failure.txt 文件存在,并列出了这个错误:

      System.IO.FileLoadException: Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
      

      在尝试了上述一些选项后,我偶然发现了将 Npgsql 程序集错误地安装到 GAC 中。卸载 Npgsql 似乎已经解决了这个问题。因此,如果上述选项都没有帮助,不妨检查一下最近安装到 GAC 中的任何内容。

      【讨论】:

        【解决方案3】:

        在我的例子中,它是 SlowCheetah,我为所有“内容”项目设置了默认转换:

        <Content>
          <TransformOnBuild>true</TransformOnBuild>
          <Link></Link>
          <CopyToOutputDirectory></CopyToOutputDirectory>
        </Content>
        

        这导致构建占用越来越多的内存(如 1.7GB)并最终抛出“子节点”消息。 重新启动 Windows 后,我的 VS 2019 只是关闭,而不是在每次构建时都出现错误。将内容转换设置为 false 解决了这个问题。

        【讨论】:

          【解决方案4】:

          对我来说,在 Windows Server 2012 R2 上设置构建环境后出现错误。

          我在同一个工作区中并行运行多个 MSBuild 实例。按顺序或在不同的工作区中运行 MSBuild 实例可以解决问题。

          鉴于其他答案,我认为错误消息是“出现严重错误并剧烈坠毁”。如果你问我,MSBuild 健壮性错误。

          【讨论】:

            【解决方案5】:

            重新启动 Windows 为我解决了这个问题。像这样的奇怪错误总是值得一试。

            【讨论】:

            • Eff 我不敢相信在尝试了很多东西后修复了它。重新启动 VS 没有帮助。
            【解决方案6】:

            我修复了 .net 框架(控制面板 -> 程序和功能.. -> 修复),因为我的假设是 MSBuild 所需的 dll 已损坏。它现在正在工作,但我不知道这是随机发生的还是一切正常。

            【讨论】:

              【解决方案7】:

              自 2016 年 11 月 11 日起,我就开始在我们的 C++ 项目中遇到这些错误。检查 windows-updates,它在早上为 windows 10 安装了以下 Microsoft 更新:

              Update for Windows 10 Version 1511 for x64-based Systems (KB3150513)
              https://support.microsoft.com/en-us/kb/3150513
              
              Windows Malicious Software Removal Tool for Windows 8, 8.1, 10 and Windows Server 2012, 2012 R2, 2016 x64 Edition - November 2016 (KB890830)
              https://support.microsoft.com/en-us/kb/890830
              
              Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB3198586)
              https://support.microsoft.com/en-us/kb/3198586
              
              Security Update for Adobe Flash Player for Windows 10 Version 1511 (for x64-based Systems) (KB3202790)
              https://support.microsoft.com/en-us/kb/3202790
              
              Security Update for Adobe Flash Player for Windows 10 Version 1511 (for x64-based Systems) (KB3201860)
              https://support.microsoft.com/en-us/kb/3201860
              

              禁用多处理器编译 /MP(在项目设置中,在 C/C++ 下,General 下)似乎可以避免该问题。

              记录在案:使用 incredibuild 7.22 时发生。没有测试它是否也会在没有 incredibuild 的情况下发生。

              【讨论】:

              • 我是 IncrediBuild 员工,据我们所知,没有其他客户对 IncrediBuild 7.22 发生的此问题提出投诉,如果您能联系 support@incredibuild.com,我们将不胜感激问题似乎与 IncrediBuild 相关,因此我们可以对此进行检查并在此线程中发布正确的答案。
              • 嗨@Dori,我在使用 incredibuild 7.22 时遇到了同样的问题,但只是在更新到 Visual Studio 2015 Update 3 之后。不确定这是 incredibuild 还是 msbuild 的问题。无论如何,我创建了一张票:xoreax.helpserve.com/Default/Tickets/Ticket/View/JJC-327-23799
              • Incredibuild 7.3(内部版本 1795)发生在我身上。我相信这个错误是由预期的东西没有准备好的竞争条件引起的。这是一个大项目,我猜它发生在预处理器中。通常在大约 3 或 4 次重试后,它最终会完成。
              【解决方案8】:

              所以,我手动完成了这个。我最终创建了一个新项目并逐个移动源文件。移动某些东西后,检查项目以确保它仍然可以构建。

              事实证明,这行存在于我的 App.xaml 中,导致它崩溃:

              <ResourceDictionary Source="Assets/Resources/LayoutTemplates.xaml" p8:Name="LayoutTemplates" xmlns:p8="http://schemas.microsoft.com/winfx/2006/xaml" />
              

              删除命名空间和“名称”属性解决了问题。

              好难懂啊……

              【讨论】:

              • 就我而言,我只是将 MSBuild 平台从“Auto”更改为“X86”并正常工作。
              猜你喜欢
              • 2011-12-16
              • 1970-01-01
              • 1970-01-01
              • 2014-11-17
              • 2014-11-19
              • 2020-11-27
              • 1970-01-01
              • 2018-08-22
              • 1970-01-01
              相关资源
              最近更新 更多