【发布时间】:2018-05-02 22:52:49
【问题描述】:
我目前正在将一个大型解决方案从旧的 csproj 文件格式迁移到新的 csproj 格式。我一次做几个项目,所以我有一个混合环境,一些项目使用旧项目文件格式,一些项目使用新项目文件格式。
我开始注意到一些构建失败,因为文件正在使用中。我的理论(基于this answer)是因为属性不同(即新项目文件格式指定TargetFramework 属性,而旧项目没有),MSBuild 正在构建一些项目两次。
似乎有并发问题的项目是被其他项目引用的项目,其中引用的项目在项目文件格式之间拆分。
我用来构建项目的命令是:
msbuild.exe /maxcpucount:6 /property:Configuration=Debug;Platform=x64 /t:Rebuild my.sln
有没有办法指示 MSBuild 只构建给定项目一次(无论属性如何),直到我能够将解决方案中的所有项目转换为新的项目文件格式?
请注意,构建单线程确实可以解决并发问题,但这会显着减慢构建速度,并且项目仍会构建多次。
【问题讨论】: