我们正在使用一些庞大的 Visual Studio 2010 解决方案,它们之间共享大量静态库项目。在构建这些解决方案中的任何一个之后,另一个解决方案会抱怨许多(但不是全部)项目已经过时,尽管实际上构建自然几乎没有任何作用并且几乎是即时的。
按照这个问题上的步骤调试 MSBuild 项目依赖项后,我可以看到以下多行消息,表明项目由于“不同的评估指纹”而被认为已过时:
[8444] Project not up to date because the last build has different evaluation fingerprint.
[8444] devenv.exe Information: 0 :
[8444] Project not up to date because the last build has different evaluation fingerprint.
[8444] devenv.exe Information: 0 :
在试图找出 MSBuild 评估指纹是什么、它们来自哪里,或者是什么可能导致它们像这样关闭时,我完全空白。
考虑到它们的剪切大小、配置要求的复杂性以及我们的日程安排中没有足够的时间来清理这样的小麻烦,创建新的项目文件是不可能的。
什么是 MSBuild 评估指纹,它们是如何确定的?