.net 无法加载引用库-进程无法访问该文件,因为其他进程正在使用该文件

.net 无法加载引用库-进程无法访问该文件,因为其他进程正在使用该文件,.net,compilation,reference,.net,Compilation,Reference,我有一个类库,我在它自己的项目/解决方案中维护它。它包含我编写的一些基本函数,我主要在一些旧的VB.NET应用程序中使用这些函数 我正在一个这样的应用程序上做一些工作,它需要对库程序集和主应用程序进行更改。但是,我发现当我更改并编译库时,当我重新编译主应用程序时,我会遇到一个错误: Error 8 Unable to load referenced library 'myLibrary.dll': The process cannot access the file because it is

我有一个类库,我在它自己的项目/解决方案中维护它。它包含我编写的一些基本函数,我主要在一些旧的VB.NET应用程序中使用这些函数

我正在一个这样的应用程序上做一些工作,它需要对库程序集和主应用程序进行更改。但是,我发现当我更改并编译库时,当我重新编译主应用程序时,我会遇到一个错误:

Error 8 Unable to load referenced library 'myLibrary.dll': The process cannot access the file because it is being used by another process.
我已指定“myLibrary\bin\Release\myLibrary.dll”作为主项目中的引用。我知道在过去,我在同一个解决方案中有库项目,因此我可以将该项目指定为引用,而不是发布DLL,但我更喜欢将项目分开


重新指定引用或重新加载主项目可以解决问题(至少暂时可以),但我更愿意找到更复杂的解决方案。

当Visual Studio刷新其Intellisense数据库时,它将锁定当前正在处理的文件(.dll或.exe)。如果我没记错的话,每次重建解决方案时,它都会刷新Intellisense数据库(不过不要引用我的话)。在尝试重新编译或运行之前,请尝试等待VS处理完其Intellisense内容。

为什么要将它们分开?如果它们是同一个代码库的一部分,那么它们应该在同一个解决方案中。通过缩短这一点,您实际上限制了VisualStudio在代码库中引用的程序集方面的开发能力。此外,引用
bin
输出非常混乱。如果您希望它成为一个独立的库,请让它构建其输出并将该输出复制到某个地方的
lib
文件夹中。然后您可以引用最终输出,而不是高度瞬态的
bin
目录


本质上,就“找到更复杂的解决方案”而言,这是一个使用VisualStudio提供的工具的问题。将代码组织到解决方案文件中是该工具的一部分。

我确实希望将其作为一个独立的库保存—我现在记不起来了,但在引用项目时遇到了一些问题。我想我会尝试通过后期构建事件复制输出,只是为了完整性。你能详细解释一下为什么你认为引用这个项目更可取吗?@David-我已经有一段时间没有再讨论这个问题了,但是IIRC你的建议(相同的VS解决方案)是唯一能提供喘息的方法。如果你想把它作为一个答案发布,你会得到赞誉的。谢谢Daniel,但这个问题仍然存在,直到我重新创建引用或重新加载项目。。。我在两次尝试之间保留了30多分钟。您还可以安装并查看哪个进程锁定该文件。至少这会让你知道下一步该去哪里。另外,如果您打开了多个Visual Studio,它们可能会在文件上相互冲突。“Studio open的多个版本”是我的问题。谢谢