不懈地奋斗了两天,终于找到原因了。
记录如下
症状:
Codeblocks 、Visual Studio 都出现此问题:修改源代码 无法立即执行 ,就是:cannot open output file "D:xxxxx......DebugNEW.exe" permission denied!
一般是因为窗口是关闭了,但是 进程没有完全退出,如果有,那么关闭此进程(new.exe)就行。
但是问题并不简单。进程里面没有。
起初我怀疑是权限问题,我去那个目录 发现无法访问执行,无法删除,无法查看权限信息。但是过了大约1分钟,文件自动消失。设置了文件夹和该分区的最高权限,重装了codeblocks N次,问题依旧。
后来,怀疑是杀毒软件 死磕,用了Unlocker检查有没有被占用,结果没有被占用,用神器(procexp.exe)监测文件访问情况,监视了360 和 ESET的进程,然后又监视了 那个NEW.exe的情况,发现 这个文件 在那一分钟内是
Deleting Pending(删除挂起 / 删除等待)状态,也就是说系统正要删除它,而且没有发现 访问被拒绝的信息,但是我不明白这一分钟 系统或者软件在对它做什么。
百度查询无果。
由于本人没有任何技术基础,只能瞎碰经验,到此已经找不出原因了。
但是一有空就研究。。。。
今天发现,卸载软件的时候,我看着某个软件的目录下的文件,发现其他文件已经被删除,而剩下 uninstall.exe(卸载程序的主程序),我以为没有删除干净,当我手动删除的时候发现和我之前编译的程序文件一样,无法访问和执行,也无法删除,无法查看权限信息。
于是我习惯性的把问题转化为 关键词——exe文件删除慢,然后查到了。
很容易就找到 问题所在,就是Application Experience服务 被禁用
我似乎没有动过这个服务,但是之前优化过一些启动项。所以说,不明白的服务项不能随便关闭,否则出现无法意料也不知道原因的疑难杂症,问题很小,但不至于为了这个问题去重做系统。于是我疯狂地找到了这个原因。
理论的解决方法:
打开 Application Experience 和Program Compatibility Assistant Service两个服务(确保这两个服务是处于启动状态)
具体做法,右键服务项,如果启动是灰色的,选择属性,选择自动,然后确定,然后再右键,就可以启动。