有没有办法找出为什么一个项目是一个Build选择操作,在VS 2008中发出的每一次重修的原因吗?
我一直在努力,甚至从Build \配置管理器中删除所有相关性(未经检查的所有组件构建列,但一有问题)。
我得到了相同的结果:每次组件重建。
我不得不提,所有的依赖都建立在同一个目录(有一个共同的输出目录)。
其实这并不是我很清楚什么是VS / MSBuild的算法来决定一个项目是否应该重建与否。 是否检查,看是否存在有上次访问NTFS时间戳比对有问题的组件中的一个较新的依赖(文件/组件)? 也许我可以尝试搜索“攻击”的文件这样。
你有一个预生成操作定义,更新你的一些输入文件的? 此外,就是始终 triggerd自定义生成步骤可能是原因。
你有什么样的项目类型的?
有没有在你的应用程序的不同模块/项目之间的循环依赖?
如果您正在使用更新的AssemblyFileVersion修改AssemblyInfo.cs中(正如我做了定速巡航.NET)例如我发现,它迫使重建。
这可以通过MSVC引起2008和错误处理(最近添加)预构建的规则。 做一个干净的,密切的MSVC,删除.PCH和.NCB文件,重新打开MSVC和建设。 这应该可以解决了不必要的编译。
我不是100%肯定,但它似乎与任何警告的项目将始终重建。
我还没有找到问题的根源,但已经找到一种方法来摆脱的影响:
GetLatestVersion(与“覆盖现有”选项)。
现在一切都OK。
还有一两件事,我发现了,之后不幸的是我已经覆盖与工作区的版本本地项目文件:有在工具-选项-项目和解决方案-建造和运行MSBuild项目生成输出的详细程度的选项。
此选项默认设置为最小 。 如果详细或诊断设置编译项目时会记录许多有趣的消息在输出窗口 。 它可以给我指点,为什么该项目每次都被编译。