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

Visual Studio使用什么来确定生成是最新的?

  •  8
  • Benj  · 技术社区  · 15 年前

    我已经编写了一个vs-addin,它截获了Visual Studio的build命令,并使用另一个生成系统进行生成。我的构建以正确的格式显示了错误,这样您就可以在vs中单击它们,但完全无缝集成所需的一个步骤是防止vs的“运行”或“调试”命令抱怨它不认为项目是构建的(当然是构建的时候),有人知道我如何欺骗vs认为项目是构建的吗?

    2 回复  |  直到 15 年前
        1
  •  5
  •   mloskot    15 年前

    很快,msbuild/visual studio会检查特定项目配置中定义目标的输出。接下来,它将指定为目标输出的文件的时间戳与指定为该特定目标输入的所有文件的时间戳进行比较。如果输入比输出更新,则请求重新生成输出(重新编译源代码或重新链接对象文件等)。

    我怎样才能欺骗别人,让他们认为这个项目是建立起来的?

    更新输入文件的时间戳,即源文件( .cpp , .cs )或二进制文件 .obj 用作链接器和其他您感兴趣的文件的输入。

    有时我会手动发出以下命令 touch 来自GNUwin32的实用程序

    touch myfile.obj
    
        2
  •  2
  •   t0mm13b    15 年前

    Visual Studio使用源文件的日期/时间戳。如果源文件是最新的,则编译后的二进制文件位于 bin\debug bin\release ,Visual Studio将重新生成解决方案。

    有时,重建过程可能会失败,快速解决方案是删除中间调试文件 *.pdb 在解决方案中 bin调试 bin释放 文件夹。然后在解决方案的基础上发布一个构建。

    希望这有帮助, 最好的问候, 汤姆。