.net core msbuild的MSBuildEnsuleRestDoutFortaskProcess属性的用途是什么

.net core msbuild的MSBuildEnsuleRestDoutFortaskProcess属性的用途是什么,.net-core,msbuild,.net Core,Msbuild,我试图将我的构建配置从dotnettest更改为dotnetmsbuild/t:VSTest,因为正如我所想,所有与构建相关的dotnet命令都是msbuild的包装器。我有大约4个测试项目,其中一个包含约700个测试 问题是,dotnettest命令运行所有测试时,dotnetmsbuild/t:VSTest运行,每次执行任意数量的测试,通常大约100个 我比较了msbuild输出,发现唯一的区别是MSBuildEnsurestDoutFortaskProcess=1变量;在命令行中设置后,它

我试图将我的构建配置从
dotnettest
更改为
dotnetmsbuild/t:VSTest
,因为正如我所想,所有与构建相关的dotnet命令都是msbuild的包装器。我有大约4个测试项目,其中一个包含约700个测试

问题是,
dotnettest
命令运行所有测试时,
dotnetmsbuild/t:VSTest
运行,每次执行任意数量的测试,通常大约100个

我比较了msbuild输出,发现唯一的区别是
MSBuildEnsurestDoutFortaskProcess=1
变量;在命令行中设置后,它也开始为
dotnetmsbuild/t:VSTest
工作

问题是——它打算这样做吗?在使用
dotnet-msbuild
dotnet-msbuild
时是否应该设置它?我应该使用像
dotnet-build
这样的特定命令进行构建,使用
dotnet-test
进行测试

因为我个人觉得总是使用不同目标的msbuild更为一致,并且希望像这样更改构建配置


我几乎无法从名称上理解它的作用,因此希望避免在我的构建配置中编写类似于
dotnet msbuild/t:VSTest/p:msbuildensurestudoutfortaskprocesses=1的内容,它看起来就像是一个黑客。

来自他评论中链接的问题@christian-k:
msbuildensurestudoutfortaskprocesses=1
“更改MSBuild创建子进程的方式,以强制它们与父进程共享stdout流。
dotnet
cli在调用
dotnet test
时使用此解决方法”()

因此,我的理解是,您使用
dotnet msbuild/t:VSTest/p:msbuildensurestudoutfortaskprocesses=1

,这可能会为您提供更多信息。乍一看,此属性的引入似乎是因为“dotnet test”问题。