error MSB3147: Could not find required file 's

2020-03-02 05:01发布

After scouring the internet and discussing this in chat here, I'm finally asking a new question about an old error.

I'm using Visual Studio Enterprise 2015 on Windows 10.

The question and answers on this are from 2011 MSBuild: error MSB3147: Could not find required file 'setup.bin'.

This question and the accepted answer were written in 2012, the other answers are from 2015, with one from 2016, that is not helpful Could not find required file 'setup.bin'.

The target build for the project is 4.0. I'm running a psl script that has only been run from another local machine.

I keep getting this error:

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4769,5): error MSB3147: Could not find required file 'setup.bin' in 'C:\dev\xxx\src\xxx\Engine'. [C:\dev\xxx\src\xxx \xxx.csproj] Publish to Local FAILURE

I have tried every solution from every answer. The only one that works is from this answer

<BootstrapperEnabled>false</BootstrapperEnabled> 

Which is a problem if it is needed to be set to true.

I've also followed this answer on MSDN. This blog.

I added registry keys:

enter image description here

enter image description here

I'm also noticing that Windows 10 has .NET framework built in, and it misses 4.0.

enter image description here

I had uninstalled the dotNetFx40_Full_setup.exe and ran a repair on Visual Studio to allow it to install the sdks as needed. This did not help.

I have an MSBuild exe where it is supposed to be according to this:

enter image description here

I'm wondering if it's because I'm missing .NET sdk 4.0.
Is it the version of bootstrapper? I don't know how to fix it. Does anyone know how to solve this on Windows 10?

1条回答
地球回转人心会变
2楼-- · 2020-03-02 05:48

The bootstrapper is responsible for the initialization of an application built using the Composite Application Library.

When you set <BootstrapperEnabled>false</BootstrapperEnabled>, the initialization of an application built will be omit. If you set it true, the initialization will be executed, then you will get that error “MSB3147: Could not find required file 'setup.bin'”.

According to your description and images, I found that you have the MSBuild 12.0, but added the value of GenericBootstrapper to the MSBuild 4.0 registry key.

Starting in Visual Studio 2013, the MSBuild Toolset version is the same as the Visual Studio version number.

So please check the registry value of GenericBootstrapper with the version 12.0. If the value is not exists or incorrect, please add it with value “C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper”. enter image description here

查看更多
登录 后发表回答