在Visual 2013安装后,一个源文件更改导致Visual 2010上的完整项目重建

时间:2014-08-25 09:13:19

标签: c++ visual-studio-2010 visual-studio msbuild build-process

由于我已经安装了,因此对源(c或c ++)文件的任何修改都会导致我的项目的完全重建。

如果再次构建而不进行修改,则该项目被视为最新版本,并且不会再次构建。这与我在SO上看到的所有重建问题不同。

我已经使用Dbgview跟踪了丢失的文件,但没有。

1 个答案:

答案 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"/>