出错总有原因 之 工程每次都重新编译

       使用VSTS2010编译的时候,偶尔遇到某些工程,明明已经编译过了的,但是选择编译整个Solution的时候,却没有忽略这些Project,而将这些Project还是原样重新编译过一次。
       这里主要讲讲自己遇到过的情况以防大家遇到类似的问题。
       其中一个原因是,自己修改了系统时间做一些功能的测试,在系统时间修改之后,又做了代码的修改。譬如说,先将时间改到了一周之后,做了测试,发现了问题,立马做了代码的修正,然后继续测试,测试没问题了自己继续工作。可是系统时间后来同步到了正确的时间,于是编译的时候,编译器发现有个CPP文件的改动时间是新于dll或者exe生成的时间,自然就会认为是新的改动,于是就会每次重新编译啦。
        另外一种情况是,某个头文件加入到了工程之中,但是后来改动中发现,并不需要这个头文件,于是从本地删除了这个头文件,而且去除了所有包含这个头文件的地方,但是忘记从工程中删除这个头文件了,在这种情况下,VSTS2010也会每次重新编译这个工程的。
       那么,如何找出问题所在呢?
       其实很简单,在VSTS2010的菜单项Tools-->Options-->Projects and Solutions-->Build and Run中,里面可以设置"MSBuild project build output verbosity"和"MSBuild project build log file verbosity"的级别,从Normal改为Detailed便可以从Output或者编译日志中获得更多信息;如果需要更详细信息的话,还可以将这个级别设置成为Diagnostic呢,不过一般情况下,Diagnostic包含的更详细信息没有什么特别的意义。 
     
       题外话,关于修改时间导致的编译问题,我遇到过的另外一种情况就是,做了改动,也编译成功了,但是实际运行的时候改动没有生效,断点也和当前代码不一致。而问题出在这个dll是在我改动时间之后编译成功的;当时间同步会当前时间后,虽然修改了代码,但是并没有替换掉更新的那个dll;这个时候,只需要Clean掉,重新编译即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值