9

我有一个包含 70 个项目的 Visual Studio (2005) 解决方案文件。
每次我按 F5 运行它时,它都会告诉我有 4 个项目已过期,并询问我是否要重建它们。即使我刚刚完成了完整的构建,它也会这样做。
我理解(原则上)其他项目之一必须更新这些项目所依赖的东西,但我该如何去找出什么?

是否有任何工具可以提供帮助,或者我应该遵循什么程序来找出导致 VS 标记这些项目以进行重建的原因?

更新:
对于那些感兴趣的人来说,我的电脑似乎是/是问题(我的高清最近一直在起作用)。当我试图追踪问题时,连续的重建开始产生编译错误。我进行了清理并构建并得到了大量(显然是虚假的)错误。一次重新启动后,然后进行重建,所有错误和依赖性问题都消失了。
打扰一下,我去备份所有重要文件时...

4

5 回答 5

7

我会连续两次运行正常的构建。第二次,我将 MSBUILD 详细程度设置为“正常”或更高(在工具-> 选项、“项目和解决方案”、“构建和运行”中。我会仔细阅读输出以查看实际构建的内容第二次。

事实上,现在我想起来了,如果这真的是一个循环,那么第二次构建的某些部分肯定是导致它第三次构建的原因,等等。也许你有一个后期构建步骤涉及用作早期步骤输入的程序集或其他资源的项目。解决方案中有 70 个项目,这样的事情很容易在不经意间引起,而且很难捕捉到。您可能必须对 MSBUILD 有足够的了解,以便能够检测到它的一个步骤何时决定它需要构建,因为某些东西发生了变化,然后才能充分了解您的解决方案,从而知道什么都不应该改变;然后看到不应该改变的事情发生了变化。

完成本练习后,您可能已经获得了一些洞察力,可以帮助您将解决方案分解为更小的解决方案。

于 2009-05-26T10:15:34.160 回答
1

将 .netmodule 链接到符合自定义构建步骤的项目时,我遇到了同样的问题。问题原来是我还链接了一个 C++ 库,并且 .netmodule 文件列在链接器输入的同一行。

示例:.lib .netmodule

代替:.lib \n .netmodule

于 2010-08-02T23:11:43.100 回答
1

比 John 在 Visual Studio 2013 中冗长的日志更快的方法是打开解决方案资源管理器的项目树;未找到的文件不会在文件名前面有小三角形(您通常可以在该文件中看到符号列表)。

删除这些文件,对我来说,AlwaysCreate 消息消失了(当详细级别设置为至少“正常”时,您只会看到“AlwaysCreate”)。

于 2013-12-12T14:48:28.553 回答
1

我遇到了这个问题,结果我有一个头文件添加到我的项目中,但我已经从磁盘中删除了。从修复的行为中删除不存在的头文件。

于 2014-01-30T14:53:37.607 回答
1

在我删除了一些在我的项目中不再使用的源文件后,我在 VS2010 中遇到了这个确切的问题。只需从“构建”菜单中选择“清洁解决方案”,然后重建解决方案即可为我解决问题。

于 2014-05-29T17:30:38.167 回答