我遇到了msbuild的问题。我有三层项目文件。最低的创建库,其中一些是语言中立的,其中一些是特定于语言的。下一层构建了一个项目,该项目将语言中性库与特定语言的库组合成产品。最后一层为不同的语言多次构建产品。
我遇到的问题是语言中立库正在构建多次,当我使用/ m标志调用msbuild时,我会在构建过程中遇到共享冲突,因为多个线程最终会构建语言中立项目。有人告诉我,如果我在MSBuild任务上使用RemoveProperties参数以便所有属性都匹配,那么msbuild只会构建一次项目。我试图这样做,但还没能让项目只构建一次。我查看了一个诊断日志并创建了一个自定义记录器,试图找出要添加到RemoveProperties参数的属性。
我的问题是msbuild如何确定同一项目文件的两次调用是相同的,并且应该只构建一次。根据传递给我的自定义记录器的OnProjectStarted事件的信息,所有全局属性都是相同的。还有其他我需要做的事吗?