【发布时间】:2009-02-07 21:13:19
【问题描述】:
在开发 ASP.NET Web 应用程序项目时,我在 Visual Studio 2008 中遇到此错误。
无法加载引用的库 'Path-to-DotNetNuke\bin\file.dll': 进程无法访问该文件,因为 它正被另一个进程使用。
这是一个包含多个模块的 DotNetNuke 项目。 IIS 从应用程序根目录下的 /bin 文件夹加载所有程序集。
解决方案中的项目在各自的 /DesktopModules/ProjectName 文件夹中,并编译到项目下的 bin 文件夹中。
在我编译解决方案并使用脚本将所有项目的 dll 复制到 /bin 后发生错误。 Visual Studio 不允许我重新编译,但如果我重新启动它,一切正常。在重新编译和测试整个解决方案时,这真的很烦人。您必须在每次重新编译之间重新启动 Visual Studio。
当 Visual Studio 显示此错误时,我无法使用 Process Explorer 找到任何文件锁定。
[更新] 有一个old MSDN document 告诉您,如果您在那里引用任何超过 64KB 的 DLL,则不要将所有 DLL 构建到单个文件夹中。特别是,该文件说:
它会导致构建过程失败 出现文件锁定错误时 引用的程序集超过 64 KB 大小。
我们确实在 /bin 文件夹中引用了超过 64KB 的 DLL,并且在那里复制重新编译的 DLL 似乎会触发这种情况,至少使用 VB IDE 的后台编译器。
【问题讨论】:
-
你找到解决办法了吗?我有同样的问题。一旦我将编译的程序集从一个解决方案复制到另一个解决方案的参考文件夹并尝试编译它,就会发生这种情况。使用 vs2008。