Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Concurrency 带有/p:BuildInParallel=true和/m参数的msbuild.exe命令行-不同组合之间的区别是什么?_Concurrency_Msbuild - Fatal编程技术网

Concurrency 带有/p:BuildInParallel=true和/m参数的msbuild.exe命令行-不同组合之间的区别是什么?

Concurrency 带有/p:BuildInParallel=true和/m参数的msbuild.exe命令行-不同组合之间的区别是什么?,concurrency,msbuild,Concurrency,Msbuild,阅读后发布此消息。要么这是明摆着的,要么我就是个傻瓜 我总是在命令行上使用/m运行msbuild.exe,而不使用任何/p:BuildInParallel=true,并且它总是生成预期数量的msbuild节点(桌面上12个,笔记本电脑上4个),并生成解决方案,以预测相应的并发程度(大多数情况下每次12或4个) 另一方面,当我从目标文件调用MSBuild任务并将多个项目(或解决方案文件)传递给它时,我总是设置MSBuild任务的BuildInParallel属性。因为这就是使用MSBuild任务并

阅读后发布此消息。要么这是明摆着的,要么我就是个傻瓜

我总是在命令行上使用
/m
运行msbuild.exe,而不使用任何
/p:BuildInParallel=true
,并且它总是生成预期数量的msbuild节点(桌面上12个,笔记本电脑上4个),并生成解决方案,以预测相应的并发程度(大多数情况下每次12或4个)

另一方面,当我从目标文件调用
MSBuild
任务并将多个项目(或解决方案文件)传递给它时,我总是设置MSBuild任务的
BuildInParallel
属性。因为这就是使用MSBuild任务并行构建项目的方式,对吗

请注意,这是
MSBuild
任务的属性,而不是在
MSBuild.Properties
中传递的生成属性(如
Configuration

这篇文章建议实际上有一个同名的build属性-
BuildInParallel
,它是对
/m
开关的补充,这对我来说完全是新闻。我搜索了*c:\Program files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild*下的所有*.targets文件,只在以下上下文中提到了它:

  • 如果属性值为nil-将其设置为
    true
  • 将其值传递给
    MSBuild.BuildInParallel
    属性
  • 构建Silverlight项目时,硬编码通过
    false
    。(我们仍然有这些,我可以同意——它们总是按顺序构建的:-()
  • 我的结论是,这篇文章在将
    BuildInParallel
    传递给msbuild.exe方面具有误导性,因为它没有任何意义,除非我们在那里传递
    false
    。这也是不必要的,只是不要传递
    /m

    但是我总是有可能在这里遗漏了一些东西,所以我的问题是:在没有
    /p:BuildInParallel=true
    的情况下运行
    msbuild.exe/m
    时,我会丢失什么

    (我想我知道答案——绝对没有,只是以防万一)