在解决方案中,我将一些依赖项目配置为 SDK 样式项目:
- Proj A 负责做一些例程作为 MsBuild 任务
- 需要这样处理才能正确编译的 Proj B 项目
- 任务在 Proj B 中配置为 MsBuild 目标,属性为 BeforeTargets="CoreCompile"。
基于该 Proj A 应该在运行 Proj B 编译任务之前完全编译。两个项目都有不同的编译目标(NetStandard20 和 Net462)。因此,我无法直接引用,而是通过将属性 AddSyntheticProjectReferencesForSolutionDependencies 设置为 false 来进行解决方案范围的项目依赖(否则 msbuild 会尝试强制项目依赖)。
在该设置中,MsBuild 有时会在编译时失败:Proj A 开始编译,但在 Proj B 运行任务时尚未及时完成。MSBuild 在 CI 机器上以 /m 键启动。
欢迎任何想法。