每当我试图复制4个文件到我的bin文件夹,停止主服务后,我得到一个文件(TexteDll)错误。错误是:

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

这可能是由于一些系统锁定。或者另一个进程正在使用这个DLL。当我在谷歌上搜索时,我发现重新启动系统可以解决这个问题。

有人能给出原因或者解决办法吗?我检查了TexteDll的属性(通用、版本、安全性等)。一切都很正常。


当前回答

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

其他回答

这是一个不同的例子。似乎由于正在使用文件句柄,就会发生这种情况。我相信这就是为什么这个答案是有效的。对我来说,我有更多的项目。从命令行打开csproj,忘记了我让它打开。所以把手是锁着的。 Sysinternals有一个简洁的命令行工具,如果您偏爱命令行,则称为handle。你可以输入handle <你想要的任何文件或文件夹的部分名称>,它会告诉你什么程序(如果有的话)正在使用它。

由Sysinternals处理

我也有同样的问题。重新开始对我没用。在任务管理器中运行着一个名为VBSCompiler的进程。我必须结束这个过程来修复这个错误。

你在运行杀毒软件吗?有可能是AV软件(或其他软件)正在使用文件映射api读取文件,这导致了问题。

我也有同样的问题,在我的情况下,似乎现有的输出文件被其他应用程序锁定。

你可以用OpenedFilesView检查哪个应用程序锁定了你的输出文件: http://www.nirsoft.net/utils/opened_files_view.html

我的问题也通过筛选流程资源管理器解决了。然而,我必须杀死的进程是MySQL Notifier.exe,它在关闭所有VS和SQL应用程序后仍然在运行。