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

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

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

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


当前回答

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

由Sysinternals处理

其他回答

Sometimes when you double click on a warning about the referenced assembly version mismatch between two or more projects you forget to close the assembly view window and it stays there among other tabs... so you end up with the assembly being locked by VS itself and it took me quite a lot of time to figure that out :) Be careful with the power VS provides ;) Another dummy scenario. Sometimes simply deleting the whole obj folder or just the file warned as the locked one helps out with this crappy error.

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

我是一名开发人员,不喜欢像Unlocker这样的应用注入到注册表中。 我使用SysInternals进程资源管理器,该进程锁定了我的dll查找>查找句柄或dll [Ctrl-F]并杀死了进程。

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

在我的情况下,我试图发布API到我的本地IIS,我通过简单地删除IIS目标文件夹中的导致文件并再次发布API来修复它,它似乎已经损坏或其他东西。