子节点“2”过早退出

Child node "2" exited prematurely

我最近将我的 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% 寻找所说的失败日志,但它不存在。我是不是找错了 "temp" 目录?

导致此错误的原因是什么?我可以在没有这个错误的情况下构建我的支持库项目。

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

原来我的App.xaml里面有这行把它炸了:

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

删除命名空间和 "Name" 属性解决了问题。

很晦涩啊...

我从 2016 年 11 月 11 日开始在我们的 C++ 项目中出现这些错误。检查 windows-更新,它在 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++,常规下)似乎可以避免这个问题。

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

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

重启 Windows 帮我解决了。对于像这样的奇怪错误总是值得一试。

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

我在同一个工作区中 运行 多个并行的 MSBuild 实例。 运行 按顺序或在不同工作区中的 MSBuild 实例使问题消失。

鉴于其他答案,我认为错误消息是 "something went horribly wrong and crashed violently"。如果你问我 MSBuild 健壮性错误。

在我的例子中是 SlowCheetah,我为所有 "Content" 项设置了默认转换:

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

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

我遇到了同样的错误。在我的例子中,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 似乎解决了这个问题。因此,如果上述选项中的 none 有帮助,也许检查一下最近安装到 GAC 中的任何东西。

就我而言,重启 VS 2019 解决了问题。

就我而言,将 UWP 项目设置中的 Target version、应用程序选项卡更改为最新版本(就我而言为 Windows 11)解决了问题。