Codeblocks 等软件 修改源代码后 不能立即执行的解决办法||exe文件删除慢

不懈地奋斗了两天,终于找到原因了。

记录如下

 

症状:

Codeblocks 、Visual Studio 都出现此问题:修改源代码 无法立即执行 ,就是:cannot open output file "D:\xxxxx......\Debug\NEW.exe" permission denied!

一般是因为窗口是关闭了,但是 进程没有完全退出,如果有,那么关闭此进程(new.exe)就行。

 

但是问题并不简单。进程里面没有。

 

起初我怀疑是权限问题,我去那个目录 发现无法访问执行,无法删除,无法查看权限信息。但是过了大约1分钟,文件自动消失。设置了文件夹和该分区的最高权限,重装了codeblocks N次,问题依旧。

后来,怀疑是杀毒软件 死磕,用了Unlocker检查有没有被占用,结果没有被占用,用神器(procexp.exe)监测文件访问情况,监视了360 和 ESET的进程,然后又监视了 那个NEW.exe的情况,发现 这个文件 在那一分钟内是

Deleting Pending(删除挂起  /  删除等待)状态,也就是说系统正要删除它,而且没有发现 访问被拒绝的信息,但是我不明白这一分钟 系统或者软件在对它做什么。

百度查询无果。

由于本人没有任何技术基础,只能瞎碰经验,到此已经找不出原因了。

但是一有空就研究。。。。

今天发现,卸载软件的时候,我看着某个软件的目录下的文件,发现其他文件已经被删除,而剩下 uninstall.exe(卸载程序的主程序),我以为没有删除干净,当我手动删除的时候发现和我之前编译的程序文件一样,无法访问和执行,也无法删除,无法查看权限信息。

于是我习惯性的把问题转化为 关键词——exe文件删除慢,然后查到了。

 

很容易就找到 问题所在,就是Application Experience服务 被禁用

我似乎没有动过这个服务,但是之前优化过一些启动项。所以说,不明白的服务项不能随便关闭,否则出现无法意料也不知道原因的疑难杂症,问题很小,但不至于为了这个问题去重做系统。于是我疯狂地找到了这个原因。

 

理论的解决方法:

打开 Application ExperienceProgram Compatibility Assistant Service两个服务(确保这两个服务是处于启动状态)

具体做法,右键服务项,如果启动是灰色的,选择属性,选择自动,然后确定,然后再右键,就可以启动。

 

 

实际上:

Application Experience处于手动,不能是禁用就行了、而Program Compatibility Assistant Service服务可以禁用。

 

posted @ 2013-11-13 00:14  一杯半盏  阅读(566)  评论(0编辑  收藏  举报