visual studio用什么来确定构建是最新的?

时间:2010-01-26 14:32:32

标签: visual-studio visual-studio-2008

我编写了一个VS插件,它拦截了Visual Studio的构建命令,并使用另一个构建系统来进行构建。我的构建以正确的格式显示错误,以便您可以在VS中单击它们,但是完全无缝集成的一步仍然是阻止VS的“运行”或“调试”命令发出警告它不会想到该项目是建立的(当然是这样)有没有人知道我怎么能欺骗VS认为该项目是建立的?

2 个答案:

答案 0 :(得分:5)

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

我怎样才能让VS认为项目已经建成?

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

有时我会使用GnuWIn32中的touch实用程序手动发出以下命令

touch myfile.obj

答案 1 :(得分:2)

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

有时,重建过​​程可能会失败,快速解决方案是删除解决方案的*.pdbbin\debug文件夹中的中间调试文件bin\release。然后在解决方案上发布构建。

希望这有帮助, 最好的祝福, 汤姆。