Visual Studio 2010总是认为项目已过时,但没有任何改变
我有一个非常类似的问题,如下所述。
我还将C ++ / CLI和C#项目的混合解决方案从Visual Studio 2008升级到Visual Studio 2010.现在,在Visual Studio 2010中,一个C ++ / CLI项目始终运行过时。
即使它已经被编译并链接到F5之前,消息框“The project is out of date,you want to build it?” 出现。 这非常烦人,因为DLL文件的层次很低,并且几乎迫使解决方案的所有项目都重新构建。
我的pdb设置被设置为默认值(这个问题的建议解决方案)。
是否有可能得到为什么Visual Studio 2010强制重建或认为项目是最新的原因?
任何其他想法为什么Visual Studio 2010的行为如此?
仅适用于Visual Studio / Express 2010。 查看VS2012,VS2013等的其他(更简单)答案
要找到缺失的文件,请使用Enable C ++项目系统日志记录中的信息来启用Visual Studio中的调试日志记录,并让它告诉你什么导致重建:
devenv.exe.config
文件(位于%ProgramFiles%Microsoft Visual Studio 10.0Common7IDE
或%ProgramFiles(x86)%Microsoft Visual Studio 10.0Common7IDE
)。 对于Express版本,配置文件命名为V*Express.exe.config
。 在</configSections>
行之后添加以下内容:
<system.diagnostics>
<switches>
<add name="CPS" value="4" />
</switches>
</system.diagnostics>
在调试日志中搜索表单的任何行:
devenv.exe信息:0:项目'Bla Bla Dummy.vcxproj'不是最新的,因为构建输入'Bla Bla SomeFile.h'丢失。
(我只是按Ctrl + F并搜索not up to date
)这些将成为引起项目永久“过期”的参考。
要更正此问题,请从项目中删除对缺失文件的引用,或者更新引用以指示其实际位置。
注意:如果使用2012或更高版本,则片段应该是:
<system.diagnostics>
<switches>
<add name="CPS" value="Verbose" />
</switches>
</system.diagnostics>
在Visual Studio 2012中,我能够比接受的解决方案更容易地实现相同的结果。
我在菜单工具→选项→项目和解决方案→构建和运行→* MSBuild项目构建输出冗长度“中将选项从最小值更改为诊断。
然后在构建输出中,我通过搜索“不是最新的”来找到相同的行:
项目'blabla'不是最新的。 项目项目'c: foo bar.xml'具有'复制到输出目录'属性设置为'始终复制'。
今天发生在我身上。 我能够找出原因:该项目包含一个头文件,该文件在磁盘上不再存在。
从项目中删除文件解决了问题。
链接地址: http://www.djcxy.com/p/44159.html上一篇: Visual Studio 2010 always thinks project is out of date, but nothing has changed