0

我遇到了 msbuild 的问题。我有一个三层的项目文件。最低的创建库,其中一些是语言中立的,而其中一些是特定于语言的。下一层构建一个项目,将语言中性库与特定语言的库组合成一个产品。最后一层为不同的语言多次构建产品。

我遇到的问题是语言中性库正在构建多次,当我使用 /m 标志调用 msbuild 时,我在构建过程中遇到共享冲突,因为多个线程最终构建了语言中性项目。有人告诉我,如果我在 MSBuild 任务上使用 RemoveProperties 参数以使所有属性都匹配,则 msbuild 只会构建项目一次。我试图这样做,但无法让项目只构建一次。我查看了诊断日志并创建了一个自定义记录器来尝试找出要添加到 RemoveProperties 参数的属性。

我的问题是 msbuild 如何决定同一个项目文件的两次调用是相同的,并且应该只构建一次。根据传递给我的自定义记录器的 OnProjectStarted 事件的信息,所有全局属性都是相同的。还有什么我需要匹配的吗?

4

0 回答 0