无法加载参考库 - 进程无法访问该文件,因为该文件正由另一个进程使用

时间:2011-12-20 14:47:38

标签: .net compilation reference

我有一个类库,我在它自己的项目/解决方案中维护。它包含了我编写的一些基本功能,主要用于一些较旧的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,但我更愿意将项目分开。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

为什么喜欢将它们分开?如果它们属于相同的代码库,那么它们应该在同一个解决方案中。通过对此进行短路,您可以有效地限制Visual Studio在代码库中引用的程序集的开发功能。此外,引用bin输出非常混乱。如果您希望它是一个独立的库,请让它构建其输出并将该输出复制到某个地方的lib文件夹。然后,您可以引用最终输出,而不是高度瞬态bin目录。

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