.net core 禁用并行执行";“清洁溶液”;在.NET内核中

.net core 禁用并行执行";“清洁溶液”;在.NET内核中,.net-core,msbuild,.net Core,Msbuild,我们在.NET Core 3.1中有一个解决方案,其中包含多个项目。所有项目都有相同的生成输出 直到最近,所有机器上的构建启动都失败了,这一切都很好。(一些更新?) 建筑工程 重建失败。 清理+重建工程 我可以在VisualStudio和《骑手》中重现这个问题 根本原因如下: 重建作为独立任务并行地开始构建每个项目。每个任务首先删除输出文件夹,然后生成一个项目 因为所有项目都有相同的输出文件夹并并行运行,所以它们只是删除由另一个项目生成创建的文件,这会导致错误: Microsoft.Comm

我们在.NET Core 3.1中有一个解决方案,其中包含多个项目。所有项目都有相同的生成输出

直到最近,所有机器上的构建启动都失败了,这一切都很好。(一些更新?)

建筑工程 重建失败。 清理+重建工程

我可以在VisualStudio和《骑手》中重现这个问题

根本原因如下:

重建作为独立任务并行地开始构建每个项目。每个任务首先删除输出文件夹,然后生成一个项目

因为所有项目都有相同的输出文件夹并并行运行,所以它们只是删除由另一个项目生成创建的文件,这会导致错误:

  Microsoft.Common.CurrentVersion.targets(4919, 5): [MSB3030] Could not copy the file "C:\myproject\x64\Debug\Project1.deps.json" because it was not found.
  Microsoft.Common.CurrentVersion.targets(4919, 5): [MSB3030] Could not copy the file "C:\myproject\x64\Debug\Project1.runtimeconfig.json" because it was not found.
  Microsoft.Common.CurrentVersion.targets(4919, 5): [MSB3030] Could not copy the file "C:\myproject\x64\Debug\Project1.runtimeconfig.dev.json" because it was not found.
显然,一个简单的解决方案是使用单独的输出文件夹,但我不能这样做,因为其他工具需要这种结构,而且这是一种规则

在触发每个项目clean+build之前,我想先清理rebuild上的输出

我可以想象的另一个解决方案是将deps.json、runtimeconfigs文件生成到单独的文件夹中


有解决方案吗?

也许您可以在解决方案属性中设置项目依赖项。。。这样他们就必须一个接一个地建造。例如,A依赖于B,B依赖于C

您可能不应该更改构建输出路径,只需发布即可?

您是否创建了一个复制错误的测试解决方案?有点长,您是否尝试过在VS中设置?