由于我已经安装了visual-studio-2013,因此对源(c或c ++)文件的任何修改都会导致我的visual-studio-2010项目的完全重建。
如果再次构建而不进行修改,则该项目被视为最新版本,并且不会再次构建。这与我在SO上看到的所有重建问题不同。
我已经使用Dbgview跟踪了丢失的文件,但没有。
答案 0 :(得分:1)
我发现问题确实是因为安装了visual studio 2013.
首先,我增加了视觉工作室的冗长度
Tools -> Options -> Projects and Solutions -> Build and Run -> MSbuild project...
当我更改任何文件时,观察到以下输出
C:\ SOMEPATH \ someidl.idl将编译为C:\ PROJECTPACT \ DLLDATA.C 在2014年7月13日上午11:23:24修改。 (TASKID:18)
This request on microsoft connect表现出相同的行为。 这似乎是由于2012年向全球MSbuild引入的修复,并且仅影响具有IDL文件的项目。来自开发
在VS2012的开发过程中,我们解决了几个问题 tracker.exe。此工具跟踪构建的读取和写入 系统。其中一项改进使我们能够正确跟踪64位 MIDL。但是,这种改进也开始跟踪dlldata.c。在 VS2012,我们通过添加忽略dlldata.c的逻辑来抵消它。这个 离开VS2010显示dlldata.c。
提供的解决方案是修改VS2010构建系统以使用VS2013构建系统的一部分。在文件%ProgramFiles%\msbuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets
行
<UsingTask TaskName="MIDL" AssemblyName="Microsoft.Build.CppTasks.Common,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
应替换为
<UsingTask TaskName="MIDL" AssemblyName="Microsoft.Build.CppTasks.Common.v110,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>