我们在.NET核心3.1中有一个包含多个项目的解决方案。所有项目都有相同的构建输出。
直到最近构建开始在所有机器上失败之前,这种方法都工作得很好。(有没有更新?)
Build works重建失败。清理+重建有效。
我可以在Visual Studio和Rider中重现这个问题。
根本原因如下:
重建开始将每个项目作为单独的任务并行构建。每个任务首先删除输出文件夹,然后生成一个项目。
因为所有项目都有相同的输出文件夹,并且是并行运行的,所以它们只是删除由另一个项目构建创建的文件,这会导致错误:
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被触发之前,首先清理重建输出。
我能想到的另一个解决方案是在单独的文件夹中生成deps.json,runtimeconfigs文件。
对此有什么解决方案吗?
发布于 2021-05-11 00:23:49
也许您可以在解决方案属性中设置项目依赖关系...这样,他们就应该被迫一个接一个地建造。例如:A依赖B,B依赖C
发布于 2021-05-17 18:08:36
您可能不应该更改构建输出路径,简单地进行发布?
https://stackoverflow.com/questions/67416581
复制相似问题