在开发ASP.NET Web应用程序项目时,我在Visual Studio 2008中收到此错误。
无法加载引用的库 'Path-to-DotNetNuke \ bin \ file.dll':The 进程无法访问该文件,因为 它被另一个进程使用。
这是一个包含多个模块的DotNetNuke项目。 IIS从应用程序根目录下的/ bin文件夹加载所有程序集。
解决方案中的项目位于各自的/ DesktopModules / ProjectName文件夹中,并编译到项目下的bin文件夹中。
编译解决方案后出现错误,使用脚本将所有项目的dll复制到/ bin 。 Visual Studio不允许我重新编译,但如果我重新启动它,一切正常。重新编译和测试整个解决方案时,这真的很烦人。您必须在每次重新编译之间重新启动Visual Studio。
当Visual Studio显示此错误时,我无法使用Process Explorer找到任何文件锁。
[更新]有一个old MSDN document告诉您如果在那里引用任何超过64KB的DLL,则不要将所有DLL构建到单个文件夹。特别是,该文件说:
它会导致构建过程失败 a时出现文件锁定错误 引用的程序集超过64 KB 大小
我们确实在/ bin文件夹中引用了超过64KB的DLL,并且复制重新编译的DLL似乎触发了这一点,至少使用VB IDE的后台编译器。
答案 0 :(得分:2)
编译解决方案并使用脚本将所有项目的dll复制到/ bin后发生错误。 Visual Studio不允许我重新编译,但如果我重新启动它,一切正常。
我建议将每个项目的输出目录设置为DotNetNuke网站的bin目录。这将帮助您避免完全复制文件的手动步骤。
设置项目的输出目录:在解决方案资源管理器中右键单击项目,然后选择属性。选择构建选项卡,选择所有配置(在顶部)并将输出路径设置为“..\..\bin
”(靠近底部)。这假设您的项目文件位于模块主目录中的典型位置(例如DesktopModules / YourModule / YourProject.csproj),否则您可以使用相邻的浏览按钮导航到您网站的bin目录。