我有一个类库,我在它自己的项目/解决方案中维护。它包含了我编写的一些基本功能,主要用于一些较旧的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,但我更愿意将项目分开。
重新指定引用或重新加载主项目可以解决问题(暂时至少),但我宁愿找到更复杂的解决方案。
答案 0 :(得分:2)
当Visual Studio刷新它的Intellisense数据库时,它将锁定当前正在处理的文件(.dll或.exe)。如果我没记错的话,每次重建解决方案时都会刷新Intellisense数据库(不要引用我的话)。在尝试重新编译或运行之前,请尝试等待VS完成其Intellisense内容。
答案 1 :(得分:2)
为什么喜欢将它们分开?如果它们属于相同的代码库,那么它们应该在同一个解决方案中。通过对此进行短路,您可以有效地限制Visual Studio在代码库中引用的程序集的开发功能。此外,引用bin
输出非常混乱。如果您希望它是一个独立的库,请让它构建其输出并将该输出复制到某个地方的lib
文件夹。然后,您可以引用最终输出,而不是高度瞬态bin
目录。
基本上,就“找到更复杂的解决方案”而言,这是使用Visual Studio提供的工具的问题。将代码组织到解决方案文件中是该工具的一部分。