代码之家  ›  专栏  ›  技术社区  ›  UmNyobe

一个源文件更改导致Visual 2013安装后在Visual 2010上重新生成完整项目

  •  0
  • UmNyobe  · 技术社区  · 11 年前

    自从我安装 ,对源(c或c++)文件的任何修改都会导致我的 项目。

    如果在没有修改的情况下再次生成,则项目将被视为最新的,不会再次生成。这与我在SO上看到的所有重建问题不同。

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

    1 回复  |  直到 11 年前
        1
  •  1
  •   UmNyobe    11 年前

    我发现问题确实是由于安装了visual studio 2013。

    首先,我增加了visual studio中的冗长内容

    Tools -> Options -> Projects and Solutions -> Build and Run -> MSbuild project...
    

    并观察到以下输出:当我更改任何文件时

    C: \SOMEPATH\someidl.idl将编译为C:\PROJECTPACT\DLLDATA.C 于2014年7月13日上午11:23:24修改。(任务ID:18)

    This request on microsoft connect 表现出相同的行为。 这似乎是由于2012年在全局MSbuild中引入了一个修复程序,该修复程序仅影响具有IDL文件的项目。从开发人员

    在VS2012的开发过程中,我们解决了几个问题 tracker.exe。此工具跟踪生成的读取和写入 系统。其中一项改进使我们能够正确跟踪64位 中部。然而,这种改进也开始跟踪dlldata.c.In 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"/>