每次重建VS 2008项目的原因

时间:2009-09-28 11:42:57

标签: visual-studio-2008 msbuild build-process build

有没有办法找出每次在VS 2008中发布构建选择操作时重建项目的原因?

我甚至试图从构建\配置管理器中删除所有依赖项(取消选中所有程序集的构建列,但有问题的那个)。

我得到了相同的结果:每次重建装配。

我必须提到所有依赖项都构建在同一目录中(有一个共同的输出目录)。

实际上我不太清楚什么是VS / MSBuild算法来决定是否应该重建项目。它是否检查是否存在最后访问NTFS时间戳比相关程序集上的时间戳更新的依赖项(文件/程序集)?也许我可以尝试以这种方式搜索“冒犯”文件。

6 个答案:

答案 0 :(得分:3)

您是否定义了更新某些输入文件的Prebuild操作?此外,总是触发的自定义构建步骤可能就是原因。

您有哪种项目类型?

答案 1 :(得分:1)

您的应用程序中的不同模块/项目之间是否存在循环依赖关系?

答案 2 :(得分:1)

如果您正在使用更新的AssemblyFileVersion(就像我使用Cruise Control .Net)修改AssemblyInfo.cs,例如我发现它强制重建。

答案 3 :(得分:1)

这可能是由MSVC 2008错误处理(最近添加的)预构建规则引起的。做一个干净,关闭的MSVC,删除.pch和.ncb文件,重新打开MSVC并构建。这应该修复不必要的编译。

答案 4 :(得分:0)

我不是百分百肯定,但是看起来任何警告的项目都会被重建。

答案 5 :(得分:0)

我没有找到问题的根本原因,但已找到摆脱效果的方法:

GetLatestVersion (使用“覆盖现有”选项)。

现在一切都好。

在我用Workspace版本覆盖本地项目文件之后,我发现了另外一件事:工具 - 选项 - 项目和解决方案 - 构建和运行-MSBuild项目构建输出详细程度中有一个选项

默认情况下,此选项设置为最小。如果在详细诊断上设置,则会在编译项目时在输出窗口中记录许多有趣的消息。它可能给了我关于每次编译项目的原因的指示。