【问题标题】:VS2010 always thinks project is out of date, system logging shows weird thingVS2010总觉得项目过时了,系统日志显示奇怪的东西
【发布时间】:2011-07-23 15:03:42
【问题描述】:

我在使用 Visual Studio 2010 和我的 C++ 项目时遇到一个常见问题。前段时间 Visual Studio 开始在每次“F5”点击时显示“项目已过时”,无论我是否更改了某些内容。我搜索了谷歌,发现了很多原因,包括thisstackoverflow 问题,其中包含有关如何启用系统日志记录的说明。我启用了系统日志记录,我在这里看到的让我震惊和敬畏:

[2104] Project 'projectname.win32.vcxproj' not up to date
because 'filename.h' was modified at 07/21/2011 09:02:54,
which is newer than '' which was modified at 01/01/0001 00:00:00. 

01.01.01 修改的 '' 有什么想法吗?

【问题讨论】:

  • 如果您从项目中删除 filename.h 然后重新添加它,是否还会发生这种情况? (也许在重新添加之前执行构建,即使构建会被破坏)。
  • 我已经从项目中删除了(这不影响编译,因为它是一个头文件)。还有更奇怪的事情——系统日志消息是一样的!我在文件系统中搜索了提到的文件名,唯一提到的地方是我项目中包含它的另一个 .h 文件。 .vcxproj 文件中没有提到它。仍然 Visual Studio 找到它:(。
  • 我想知道文件中是否有一些奇怪的东西是有效的 C++ 但可能会混淆 VS 用来找出依赖关系的任何解析器。您可能会尝试从文件中删除一些内容,直到问题消失 - 当然这是假设问题是由于文件的内容造成的,但情况可能并非如此。

标签: visual-studio visual-studio-2010


【解决方案1】:

记录:问题是由intermediate directory 设置为$(TEMP)\$(ProjectName)_int\$(Configuration)\ 引起的。将其更改为相对..\out\$(ProjectName)_int\$(Configuration)\ 完全解决了问题。似乎是许多视觉工作室错误之一 O_O。

【讨论】:

  • 这个 bug 只针对 x64 平台目标,而不针对 Win32 平台。
【解决方案2】:

filename.h 真的存在吗? filename.h 是否列在解决方案资源管理器中?当标头已从磁盘中删除但未从项目中删除时,项目引擎将始终尝试重建。

【讨论】:

  • 当然存在,因为它有修改时间:)。但可以肯定的是,我只是复制文件名,将其粘贴到资源管理器窗口中,然后成功打开。
  • @Eye 我在想记录的时间可能是项目引擎上次看到文件时缓存的时间。
  • @Eye - 它记录完整路径还是只记录名称?如果只是名称,是否已移至其他目录?
  • 完整路径,出于说明目的,我将其从消息中删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
相关资源
最近更新 更多