2010-01-26 42 views
8

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

+0

看看下面的命令在这里:http://stackoverflow.com/questions/2762930/vs2010-always-thinks-project-is-out -of-日期,但全无,已经改变的 – 2012-09-18 17:23:29

回答

5

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

我如何欺骗VS,使其认为项目已经构建?输入文件的

更新时间戳,作为连接器,并且是您感兴趣的其他文件输入即源文件(.cpp.cs)或类似.obj二进制文件。

有时候,我做手工发放使用touch实用工具的GnuWin32

touch myfile.obj 
2

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

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

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

相关问题