尝试清理解决方案时,无法删除文件“....\SQL.Interop.dll”。访问路径“....\SQLite.Interop.dll”被拒绝。

3
我在一个MVC桌面应用程序中使用Nuget包System.Data.SQLite。当我尝试清理解决方案时,会出现错误。我收到的错误消息是:“无法删除文件“…bin\Debug\x64\SQLite.Interop.dll”。拒绝访问路径“\bin\Debug\x64\SQLite.Interop.dll”。
这几乎是与此处here提出的相同的问题,但由于我刚创建了我的SO帐户,因此无法在那里添加我的评论。
我在我的数据库项目上使用NuGet包System.Data.SQLite和System.Data.SQLite.Core,在我的UI项目上使用System.Data.SQLite.Core。
我创建了一个按钮来终止IIS进程,如answers中建议的那样,但由于我无法构建我的项目,因此无法测试是否有效。
昨天我能够很好地进行清理/构建。我想知道反复调试是否导致了这个问题。

这个没用吗? - IronAces
@DanielShillcock 没有,但是下面Scott Chamberlain的回答帮助我找到了正在使用该dll的进程,我成功地结束了那个进程。 - dmdh
1个回答

2
有些东西正在使用该DLL,如果不是IIS Express,则是其他东西。当我遇到这种情况时,我会使用Microsoft的Process Explorer并单击搜索按钮,然后搜索文件路径。然后我可以单击搜索结果并从Process Explorer内部结束任务。
以下是一个例子,搜索谁正在使用文件c:\ agent \ bin \ clrjit.dll

enter image description here

我可以右击 Agent.Listener.exe 并选择“终止进程”。
对于您的情况,您需要搜索 bin\Debug\x64\SQLite.Interop.dll。

Scott Chamberlain:进程资源管理器帮助我找到了罪魁祸首。不知何故,桌面应用程序的一个实例在后台运行而没有可见窗口。谢谢!我已经为你的答案点赞,但由于我的新身份,它并没有显示出来。再次感谢! - dmdh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接