首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DisableOutOfProcTaskHost是做什么的?

DisableOutOfProcTaskHost是做什么的?
EN

Stack Overflow用户
提问于 2020-10-27 11:08:44
回答 2查看 914关注 0票数 2

最近,我在构建WPF应用程序时遇到了以下错误:

Microsoft VisualStudio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(3036,5):错误MSB4216:无法运行"GenerateResource“任务,因为MSBuild无法创建或连接到具有运行时"CLR4”和体系结构"x64“的任务主机。请确保(1)所请求的运行时和/或体系结构在计算机上可用,(2)确保所需的可执行文件"C:\Program (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\MSBuild.exe“存在并可以运行”。

C:\Program (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(3058,7):error MSB4028:无法从"FilesWritten“参数检索"GenerateResource”任务的输出。对象与目标类型不匹配。

帮助我将系统变量DISABLEOUTOFPROCTASKHOST设置为1。这个解决方案是谷歌搜索的,我找不到关于正在发生的事情以及为什么DISABLEOUTOFPROCTASKHOST帮助我的解释。

有人能向我解释什么是错误的原因,为什么变量帮助了我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-28 06:04:12

在您的端中,您似乎已经编译了一个与主机MSBuild实例不同的架构的资源。这可能是由于项目资源文件的不同版本或使用不同版本的代码需要使用不同的MSBuild(arm64\msbuild.exe) CLR启动不同版本的额外进程而造成的。

因此,所以的方法是应该让MSBuild始终遵循当前的文件构建版本,也就是说,它可以在相同的MSBuild构建过程下在不同版本的构建机制之间自动切换。

解决方案是将这些xml节点添加到xxx.csproj文件中:

代码语言:javascript
运行
复制
<PropertyGroup>   
     <GenerateResourceMSBuildArchitecture>CurrentArchitecture</GenerateResourceMSBuildArchitecture>
     <GenerateResourceMSBuildRuntime>CurrentRuntime</GenerateResourceMSBuildRuntime>
</PropertyGroup>

将环境变量DISABLEOUTOFPROCTASKHOST添加到1。(让它在同一MSBuild.exe构建过程下在不同版本的构建机制之间切换)

票数 1
EN

Stack Overflow用户

发布于 2021-04-02 16:14:46

我也犯了同样的错误。但是通过修复VisualStudio2019,关闭VS,删除.vs隐藏文件夹(在解决方案文件夹下),bin和obj文件夹,然后重新启动VS。幸运的是我的问题解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64553157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档