无法加载引用的库

时间:2009-02-07 21:13:19

标签: visual-studio dotnetnuke

在开发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的后台编译器。

1 个答案:

答案 0 :(得分:2)

  

编译解决方案并使用脚本将所有项目的dll复制到/ bin后发生错误。 Visual Studio不允许我重新编译,但如果我重新启动它,一切正常。

我建议将每个项目的输出目录设置为DotNetNuke网站的bin目录。这将帮助您避免完全复制文件的手动步骤。

设置项目的输出目录:在解决方案资源管理器中右键单击项目,然后选择属性。选择构建选项卡,选择所有配置(在顶部)并将输出路径设置为“..\..\bin”(靠近底部)。这假设您的项目文件位于模块主目录中的典型位置(例如DesktopModules / YourModule / YourProject.csproj),否则您可以使用相邻的浏览按钮导航到您网站的bin目录。