无法 运行 "GenerateResource" 任务,因为 MSBuild 无法创建或连接到具有 运行 时间 "CLR4" 和体系结构 "x64" 的任务主机

Could not run the "GenerateResource" task because MSBuild could not create or connect to a task host with runtime "CLR4" and architecture "x64"

我正在使用 Visual Studio 2017 企业版 15.7.1 和 .NET Framework 4.5。

我刚刚安装了 Windows 10 更新版本 10.0.18363 构建 18363。

我可以在同一个解决方案中构建其​​他项目,但是对于这个项目,我在构建时遇到了这个错误

2>C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin\Microsoft.Common.CurrentVersion.targets(3045,5): 
error MSB4216: 
Could not run the "GenerateResource" task because MSBuild could not create or connect to a task host with runtime "CLR4" and architecture "x64".  
Please ensure that (1) the requested runtime and/or architecture are available on the machine, and (2) that the required executable "C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin\amd64\MSBuild.exe" exists and can be run.

Error   MSB4028 The "GenerateResource" task's outputs could not be retrieved from the "FilesWritten" parameter. 
Object does not match target type.  my-project-name C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin\Microsoft.Common.CurrentVersion.targets   3066

我该如何解决这个问题? 谢谢。

试试这些:

1) 在您的 xxx.csproj 文件中添加这些 xml 节点:

<PropertyGroup> 

<GenerateResourceMSBuildArchitecture>CurrentArchitecture</GenerateResourceMSBuildArchitecture>
<GenerateResourceMSBuildRuntime>CurrentRuntime</GenerateResourceMSBuildRuntime>
    
</PropertyGroup>

2) 添加名为DisableOutOfProcTaskHost 的系统环境变量并将其值设置为true.

DISABLEOUTOFPROCTASKHOST设为1

3) 因为你的VS2017太旧了,建议你更新一下你的VS2017 到最新版本,以防有一些修复。或者 repair vs.

另外,确保你已经安装了工作负载.Net Core cross-platform development in vs installer.

4)关闭VS,删除解决方案文件夹下的.vs隐藏文件夹,binobj文件夹,然后重启VS进行测试再次。 外,您可以将目标框架版本更改为net framework 4.6.1,将配置更改为Any CPU

我有同样的错误(在版本 16.9.3 中)但是通过修复 Visual Studio 2019,更新最新版本 windows 10,关闭 VS,删除 .vs 隐藏文件夹(在解决方案文件夹下)、bin 和 obj 文件夹,然后重新启动您的 VS。还好我的问题解决了。