.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”问题。