错误MSB3147:找不到所需文件'setup.bin'发布到本地故障

Yve*_*omb 7 .net windows msbuild powershell visual-studio

在网上搜索并在聊天中讨论这个问题之后,我终于问了一个关于旧错误的新问题.

我在Windows 10上使用Visual Studio Enterprise 2015.

问题和答案来自2011 MSBuild:错误MSB3147:找不到所需文件'setup.bin'.

这个问题和接受的答案是在2012年写的,其他答案来自2015年,有一个来自2016年,没有帮助 无法找到所需文件'setup.bin'.

该项目的目标构建是4.0.我正在运行一个仅从另一台本地计算机运行的psl脚本.

我一直收到这个错误:

C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4769,5):错误MSB3147:在'C:\ dev\xxx \中找不到所需文件'setup.bin' SRC\XXX \引擎".[C:\ dev\xxx\src\xxx\xxx.csproj]发布到本地FAILURE

我已经尝试过每个答案的每个解决方案.唯一有效的是这个答案

<BootstrapperEnabled>false</BootstrapperEnabled> 
Run Code Online (Sandbox Code Playgroud)

如果需要将其设置为true,则会出现问题.

我也在MSDN上关注了这个答案.这个博客.

我添加了注册表项:

在此输入图像描述

在此输入图像描述

我也注意到Windows 10内置了.NET框架,它错过了4.0.

在此输入图像描述

我卸载了dotNetFx40_Full_setup.exe并在Visual Studio上运行修复,以允许它根据需要安装sdks.这没有用.

我有一个MSBuild exe应该根据这个:

在此输入图像描述

我想知道是不是因为我缺少.NET sdk 4.0.
它是bootstrapper的版本吗?我不知道如何解决它.有谁知道如何在Windows 10上解决这个问题?

Leo*_*SFT 4

\n

引导程序负责初始化使用复合应用程序库构建的应用程序。

\n
\n\n

当您设置 时<BootstrapperEnabled>false</BootstrapperEnabled>,构建的应用程序的初始化将被省略。如果设置为 true,将执行初始化,然后您将收到错误 \xe2\x80\x9cMSB3147: Could not find required file \'setup.bin\'\xe2\x80\x9d。

\n\n

根据您的描述和图像,我发现您拥有MSBuild 12.0,但将GenericBootstrapper的值添加到MSBuild 4.0注册表项中。

\n\n
\n

从 Visual Studio 2013 开始,MSBuild 工具集版本与 Visual Studio 版本号相同。

\n
\n\n

因此,请检查版本 12.0 的 GenericBootstrapper 的注册表值。\n如果该值不存在或不正确,请使用值 \xe2\x80\x9cC:\\Program Files (x86)\\Microsoft SDKs\\Windows\ 添加它\v8.1A\\Bootstrapper\xe2\x80\x9d。\n在此输入图像描述

\n