我通过项目属性为我的 .dll 项目设置了一个输出文件夹,我称之为“输出”。
问题是,从一个空的输出文件夹中,我第一次构建项目时,它很好。第二次,我收到以下错误:
错误 328 无法将文件“obj\Release\MyLibrary.dll”复制到“......\Output\Release\MyLibrary.dll”。该进程无法访问文件“......\Output\Release\MyLibrary.dll”,因为它正被另一个进程使用。
“另一个进程”是 Visual Studio 中的 vshost.exe。由于它一直在访问 MyLibrary.dll,因此无法删除或替换它,因此为什么会出现错误。这会使输出文件夹上的 MyLibrary.dll 保持不更新。但是,我的解决方案中有其他 .dll 项目不会发生这种情况。
到目前为止我用来更新它的解决方案是关闭 VS(从而关闭 vshost.exe),然后运行一个删除文件 Output\Release\MyLibrary.dll 的 .bat 文件,然后再次打开 VS 并重建它的项目.
我对 vshost.exe 究竟做了什么知之甚少,所以我不知道从哪里开始从根本上解决这个问题。我不知道为什么这会发生在特定的 .dll 上。我感谢任何有助于我调查为什么会发生这种情况的想法。