用 Win7 一年多了,一直在这个环境下编程,其他都挺好,就是有个问题非常恶心,在VS下编译经常出现进程正在使用,无法覆盖的错误,这个问题我记得博问中以前也有其他人遇到过,也没有解决掉。此问题困扰了我一年,期间我查了很多中英文资料都没有得到理想的答案。今天实在忍无可忍,又去狗了一下,可能关键字输入不一样吧,这次终于狗出来了,困扰一年的问题终于解决了。写此文希望能帮助和我一样正在为此问题抓狂的同仁。

这个问题其实并不是VS的问题,只是因为我用VS需要经常编译并生成exe文件,所以才会表现的比较突出。它本质上其实是操作系统本身的问题,其表现为如果你运行了一个exe文件,当关闭这个进程后,你删除它,在资源管理器中你会看到它被删除了,但一刷新它又出现了,要等待大约5分钟左右,这个文件才会实际被删除掉,在此期间你无法对这个文件覆盖或改名。体现在VS开发环境中就是一旦你编译完运行过一次这个程序,你后面再编译,就报进程正在使用,无法覆盖,要等5分钟后才好。这个等待的时间时长时短,故障也不是每次都出现,不同的exe文件出现的频率也不一样。

我之前在google 和 百度中搜索过很多次,中文和英文论坛中都有很多人遇到这个问题,基本上回答者给出的解决方案有以下几种:

1. 第三方杀毒软件在作怪

这个是最容易联想到的,在MSDN 的英文论坛上,我看到一个来自微软的工程师就是这么回答的,他坚决否认是操作系统引起的。由于他代表微软回答问题,这个很有一些误导性。实际上我停用了我的杀毒软件,还是无法解决这个问题,论坛上遇到相同问题的人也是一样。

2. Indexing service 引起

这种说法也是想当然的,认为Indexing service 在后台工作,可能会访问这个文件,导致无法删除。但这个说法有个问题他无法解释,就是为什么只有exe文件才出现这个问题?不管怎么样,我禁用了 Indexing service 这个服务,结果依然无法解决这个问题。

3. 权限不够造成

这个说法也比较荒谬,权限不够那应该永远无法删除才对,而且出错信息不应该是进程正在使用。我给了所在目录最高权限,依然无法解决这个问题。

为了证实这个问题到底是操作系统的问题还是应用程序的问题,我尝试了下面方法

1. 用 ProcessExplorer 来看对应的exe 文件有没有进程在占用

结果是没有进程在占用。

2. 将 exe 文件所在的目录做了审核,看删除后到底谁又把它重新创建了,因为删除后从表象上看,刷新一下,进程又出来了,所以我怀疑有什么进程重新创建了这个exe文件。

结果当删除后,审核的日志中报告删除成功,之后没有重建的日志,而此时资源管理器中仍然能看到这个文件,而且无法覆盖和改名。

由此我基本判断这个问题是操作系统引起的,和其他应用程序占用无关,exe 被删除后,操作系统中出现了不一致。很长一段时间我一直没有找到解决方案,因此我对win7 操作系统抱有成见,因为这个问题实在是个很严重的问题,这么多人都遇到过,居然都没有去fix 这个bug。不过今天我终于找到了解决方案,看来不是bug,而是使用不当造成,至于为什么会出现这个问题,我还没有搞清楚。

问题的原因是 Application Experience 这个服务被关闭造成的,其实还有一个服务叫Program Compatibility Assistant Service 也要运行,只有这个两个服务同时运行,才不会出现这个删除不掉exe 的问题。

终于解决了一个Win7 下 VS 编译的问题,困扰了我好几个月的更多相关文章

  1. Win7下VS2008编译QtiPlot

    Win7下VS2008编译QtiPlot By wangsh 2011-11-25 QtiPlot 是一款开源免费的科学绘图软件,可运行在多个平台(windows.Linux等)中,从功能上讲,Qti ...

  2. 花了5天时间,终于解决了一个bug,心情非常愉快,憋了这么久,不吐不快

    http://www.cnweblog.com/fly2700/archive/2011/12/06/318916.html (转载) 花了5天时间,终于解决了一个bug,心情非常愉快,憋了这么久,不 ...

  3. Win7下静态编译QT5.12源码

    官方参考文档:https://doc.qt.io/qt-5/build-sources.html CSDN博客:https://blog.csdn.net/GG_SiMiDa/article/deta ...

  4. MXNet在64位Win7下的编译安装

    注:本文原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) 我笔记本配置比较低,想装个轻量级的MXNet试试,装完之后报错,不是有效的应用程序,找不到 ...

  5. [C#]解决程序Vista/Win7下因UAC导致的读写错误

    在微软的操作系统中,vista和win7加入了UAC的功能,UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户 ...

  6. Zookeeper源码编译为Eclipse工程(win7下Ant编译)

    前言 ZooKeeper是雅虎的.用Ant进行软件构建. 千里之行,始于足下.想看源码的第一步,是下载源码并导入某个IDE工具. Ant http://ant.apache.org/ Windows: ...

  7. mongodb及mongoclient在win7下的编译和使用

    1.导言 折腾mongodb几个小时最终有结果了.呃.如今就简单总结一下. 事实上我的需求非常easy,就是在C++代码中调用mongodb的库函数.也就是要得到mongoclient.lib.本来想 ...

  8. win7下vs2008编译出现C1859错误的处理办法

    昨天,电脑上安装的vs2008 sp1版本编译工程时候出了这样的错了:fatal error C1859: 'Debug\**.pch'.清理并重新编译会临时解决问题,但问题仍然会频发.后面上网找资料 ...

  9. win7下cmake编译opencv2.3.1生成opencv—createsamples.exe和opencv_haartrainingd.exe

    第一步:下载安装cmake,之后进行默认安装即可,这步略过. 第二步:配置cmake ,使cmake找到opencv进行编译安装 watermark/2/text/aHR0cDovL2Jsb2cuY3 ...

随机推荐

  1. VMWare虚拟机安装步骤

    VMWare虚拟机安装 如果以前安装过VMware,则先检查是否卸载干净(注册表等) 一.首先下载VMware Workstation Pro,在这里提供一个下载链接:https://www.nocm ...

  2. webstrom突然不显示文件夹

    不知道什么原因,webstrom突然不显示文件夹了,弄得几乎都不能用了... 百度搜了一下解决方案: 问题原因:webstorm自动生成的配置文件 .idea/modules.xml损坏(就是我一开始 ...

  3. php的正则表达式

    这篇文章介绍的内容是关于php的正则表达式 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配.替换.截取匹配 ...

  4. 20165101刘天野 2017-2018-2 《Java程序设计》第4周学习总结

    #20165101刘天野 2017-2018-2 <Java程序设计>第4周学习总结 教材学习内容总结 第五章:子类与继承 面向对象程序设计语言有三大特性:封装.继承和多态性.继承是面向对 ...

  5. Cocos2d-x项目移植到WP8系列之七:中文显示乱码

    原文链接:http://www.cnblogs.com/zouzf/p/3984628.html C++和C#互调时经常会带一些参数过去例如最常见的字符串,如果字符串里有中文的话,会发现传递过去后变成 ...

  6. Kubernetes 命令补全

    yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource <(kubectl c ...

  7. freopen重定向输入

    #include <bits\stdc++.h> using namespace std; int main() { freopen("C:\\Users\\dcf\\Deskt ...

  8. PhotoShopCs5启动 需要使用Adobe Application Manager 启动试用版

    解决办法:下载Application Manager 7.0 地址:http://download.adobe.com/pub/adobe/creativesuite/cs/win/Applicati ...

  9. DataX的安装

    DataX的安装 1. 可下载tar包 https://github.com/alibaba/DataX/blob/master/userGuid.md 2. 下载源码自己编译 git clone h ...

  10. ztree高级实例(原创)

    最近项目中需要设计一个类似收藏夹的功能保存用户常用的东西,需要客户体验好,所以想到了以前用过的ztree. 在用ztree的过程中遇到一些问题,在此记录,提醒自己,也帮助遇到相同情况的同行们. 1.至 ...