2011-01-11 55 views
153

用户映射部分文件每当我试着4个文件复制到我的bin文件夹,停止主服务后,我得到一个错误的一个文件(TexteDll)执行。错误是:请求的操作不能在开放

Cannot copy TexteDll: The requested operation cannot be performed on a file 
with a user-mapped section open 

这可能是由于某些系统锁定。或者也许另一个进程正在使用此DLL。当我使用Google时,我发现重新启动系统可能会解决此问题。

任何人可以提出此一原因或解决方案?我检查了TexteDll的属性(一般,版本,安全等)。一切正常。

+1

重复的http://stackoverflow.com/questions/1302698/system-io-exception-error-the-requested-operation-cannot-be-performed-on-a-file – Sam 2011-07-01 06:45:01

+6

实际上有更多'重复'的问题(例如:http://stackoverflow.com/questions/1818076/why-do-i-get-file-is-used-by-another-process-errors-when-i-debug-within-视觉) - 问题在于每次根本原因都是不同的。 – MaciekTalaska 2012-08-08 14:29:41

+4

下次尝试使用微软网站上的“进程管理器”。它有一个称为“查找句柄”的功能。在那里搜索你的文件,它会告诉你哪个进程对该文件有句柄。然后,您可以开始调查为什么该程序具有该访问权限。顺便说一句,停止服务并不一定意味着托管服务的可执行文件将结束。可执行文件可能托管多个服务。在最坏的情况下,使用大量内存的许多.net服务在释放内存之后往往会终止,而这种内存在服务停止事件之后有时几分钟就会发生。 – edokan 2012-08-16 18:27:30

回答

4

您是否正在运行任何防病毒软件。 AV软件(或其他软件)可能使用导致问题的文件映射API来读取文件。

156

在我的情况下,它是被锁定的是在Debug文件夹...奇怪,不是吗”被编译的DLL中的资源管理器它呢?

我发现使用一种称为解锁工具。

不得不删除与解锁,即使它是说,有在文件中没有锁,我无法删除的文件夹,直到我没有删除单个文件...

之后它编译。

编辑:

我发现了为什么在我的情况下,这是发生。我在Visual Studio中一个文本编辑器打开该DLL ...

+29

我在打开的许多视觉工作室窗口之一中打开了dlo。感谢您发布该更新。 – ptfaulkner 2013-03-25 14:19:53

+3

同样的事情,不知何故,在编辑器中的文本窗口中打开了Danged DLL。 – Harv 2013-04-10 19:07:11

29

关闭所有文件上VS并尝试再次重建。如果它不工作重新启动VS.此问题与DLL文件的锁定有关。

64
  • 有时候当你在大约两个或多个项目之间的引用 集版本不匹配的警告双击您忘记 关闭装配视图窗口和它的其他 选项卡中停留在那里......所以你最终了大会由VS 本身被锁定,花了我不少时间去弄清楚:)

    小心VS提供动力;)

  • 另一个虚拟场景。有时只需删除整个目标文件夹或只是文件被警告,因为锁定的文件可以帮助解决这个问题。
6

关闭visual studio,删除bin,调试发布文件夹,并再次启动visual studio项目。 是固定我的问题

1

关闭Visual Studio和运行它为管理员。它解决了我的问题。

1

我在使用Ant构建Dot Net应用程序时看到了这些错误。

就我而言,这是我们的企业备份软件Symantec DLO Agent。停止它并排除我的防病毒软件中的目录并关闭Visual Studio似乎可行。

0

我遇到了这个错误,结果证明问题是FxCop对我的项目运行。我关闭了FxCop,然后我可以再次编译。

4

在我的情况下,我不得不杀死一个悬挂的MSBuild.exe进程,该进程锁定了文件(即使关闭了Visual Studio后,它仍然存在)。

8

我是一名开发人员,不喜欢将应用程序注入到像Unlocker这样的注册表中。 我用SysInternals Process Explorer哪个进程锁定了我的dll Find > Find Handle or Dll [Ctrl-F]并且终止了进程。

0

如果是一个Web应用程序删除Temporary ASP.NET Files文件夹中的文件可能是一个解决方案。

3

其他人已经确定此错误是由于另一个应用程序锁定了该文件。只是想指出,git diff锁定文件,直到你退出它。这就是我的情况。

0

如果您使用AQ时间等分析器,这些也可能会锁定文件。在这种情况下,解决方案是重新启动分析器或简单地从分析器中卸载/加载有问题的组件。 对于AQ时间,我注意到它在一段时间后释放文件,但我不能为了我的生活而告诉那个超时是什么。 似乎是随机的

0

今天我也有同样的错误。我通过重建项目解决了这个问题。

2

对我来说,解决方案是关闭VS的所有实例并杀死任何悬挂的devenv.exe进程。

0

我的解决方案是重新启动计算机。

2

我有同样的问题。重新启动对我无效。有一个名为VBSCompiler的进程在任务管理器中运行。我不得不结束这个过程来解决这个错误。

2

这里没有任何解决方案适用于我。这是devenv.exe(Visual Studio)锁定文件,但如果我重新启动它,它会重新锁定它。

奇怪的是,Windows不会让我删除文件(回收站),但Shift + Delete(永久删除)工作。

1

删除OBJ文件夹和重建工作对我来说

0

在我的情况下删除该文件夹的obj项目的根和改造项目解决了我的问题!