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

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

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

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


当前回答

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.

其他回答

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

关闭visual studio,删除bin,调试发布文件夹,重新启动visual studio项目。 这解决了我的问题

在我的情况下,删除项目根obj文件夹和重建项目解决了我的问题!

在我的例子中,是资源管理器锁定了调试文件夹中编译的DLL…很奇怪,不是吗?

我是用一个叫解锁的工具发现的。

必须用Unlocker删除,即使它说文件没有锁,我不能删除文件夹,直到我不删除那个文件……

之后,它进行了编译。

编辑:

我发现了为什么在我的案例中会发生这种情况。我在Visual Studio的文本编辑器中打开了DLL…

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

在我的例子中,它是我们公司的备份软件,赛门铁克DLO代理。停止它并排除我的杀毒软件中的目录并关闭Visual Studio似乎有效。