2009-02-07 32 views
3

在開發ASP.NET Web應用程序項目時,Visual Studio 2008中出現此錯誤。無法加載引用的庫

無法加載引用庫 「路徑到DotNetNuke的\ BIN \ file.dll」:該 進程無法訪問,因爲它 正在被另一個進程使用的文件。

這是一個包含多個模塊的DotNetNuke項目。 IIS從應用程序根目錄下的/ bin文件夾加載所有程序集。

解決方案中的項目位於其各自的/ DesktopModules/ProjectName文件夾中,並編譯爲項目下的bin文件夾。

編譯解決方案後發生錯誤,用腳本將所有項目的dll複製到/ bin。 Visual Studio不讓我重新編譯,但如果我重新啓動它,一切正常。重新編譯和測試整個解決方案時,這真的很煩人。您必須在每次重新編譯之間重新啓動Visual Studio。

當Visual Studio顯示此錯誤時,我找不到Process Explorer的任何文件鎖定。


[更新]有一個old MSDN document,告訴你不建所有dll到一個文件夾,如果你引用任何超過64 KB DLL那裏。 Particulartly,文件說:

它會導致生成過程中,當 引用的程序集大於64 KB的 大小失敗 與文件鎖錯誤。

我們確實在/ bin文件夾中引用了超過64KB的DLL,並且複製了重新編譯的DLL,似乎至少在VB IDE的後臺編譯器中觸發了此操作。

+0

你找到了解決辦法嗎?我有同樣的問題。一旦我將編譯後的程序集從一個解決方案複製到另一個解決方案的參考文件夾並嘗試編譯它,它就發生在我身上使用vs2008。 – 2009-05-14 11:21:13

回答

2

編譯解決方案並將所有項目的dll複製到/ bin腳本後出現錯誤。 Visual Studio不讓我重新編譯,但如果我重新啓動它,一切正常。

我建議將每個項目的輸出目錄設置爲DotNetNuke網站的bin目錄。這將幫助您避免完全複製文件的手動步驟。

要設置項目的輸出目錄:在解決方案資源管理器中右鍵單擊您的項目並選擇屬性。選擇生成選項卡,選擇所有配置(在頂部)並將輸出路徑設置爲「..\..\bin」(靠近底部)。這假設您的項目文件位於模塊主目錄中的典型位置(例如,DesktopModules/YourModule/YourProject.csproj),否則您可以使用相鄰的瀏覽按鈕導航到您的網站的bin目錄。

+0

你知道這是否仍然是最新的? http://weblogs.asp.net/bsimser/archive/2005/05/25/408850.aspx http://msdn.microsoft.com/en-us/library/ms998223.aspx 我認爲它解釋了問題。 – mika 2009-02-08 17:44:01