每当我试图复制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处理

其他回答

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

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

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

之后,它进行了编译。

编辑:

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

关闭Visual Studio并以管理员身份运行。它解决了我的问题。

我尝试了以上的方法,但对我不起作用。我遵循的几个步骤:

关闭所有VS实例,重新打开。 关闭build.exe和explorer.exe进程。 删除项目中的bin文件夹。

对我有用的是—— 重新启动我的机器。

在我的情况下,仍然有VS2022 (devenv.exe)运行的“不可见”实例。它被列在任务管理器中,状态=挂起,但在任务栏或其他任何地方都看不到相应的窗口。在终止该进程之后,问题就解决了。

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

由Sysinternals处理