2011-01-11 60 views
153

用戶映射部分文件每當我試着4個文件複製到我的bin文件夾,停止主服務後,我得到一個錯誤的一個文件(TexteDll)執行。錯誤是:請求的操作不能在開放

Cannot copy TexteDll: The requested operation cannot be performed on a file 
with a user-mapped section open 

這可能是由於某些系統鎖定。或者也許另一個進程正在使用此DLL。當我使用Google時,我發現重新啓動系統可能會解決此問題。

任何人可以提出此一原因或解決方案?我檢查了TexteDll的屬性(一般,版本,安全等)。一切正常。

+1

重複的http://stackoverflow.com/questions/1302698/system-io-exception-error-the-requested-operation-cannot-be-performed-on-a-file – Sam 2011-07-01 06:45:01

+6

實際上有更多'重複'的問題(例如:http://stackoverflow.com/questions/1818076/why-do-i-get-file-is-used-by-another-process-errors-when-i-debug-within-視覺) - 問題在於每次根本原因都是不同的。 – MaciekTalaska 2012-08-08 14:29:41

+4

下次嘗試使用微軟網站上的「進程管理器」。它有一個稱爲「查找句柄」的功能。在那裏搜索你的文件,它會告訴你哪個進程對該文件有句柄。然後,您可以開始調查爲什麼該程序具有該訪問權限。順便說一句,停止服務並不一定意味着託管服務的可執行文件將結束。可執行文件可能託管多個服務。在最壞的情況下,使用大量內存的許多.net服務在釋放內存之後往往會終止,而這種內存在服務停止事件之後有時幾分鐘就會發生。 – edokan 2012-08-16 18:27:30

回答

4

您是否正在運行任何防病毒軟件。 AV軟件(或其他軟件)可能使用導致問題的文件映射API來讀取文件。

156

在我的情況下,它是被鎖定的是在Debug文件夾...奇怪,不是嗎」被編譯的DLL中的資源管理器它呢?

我發現使用一種稱爲解鎖工具。

不得不刪除與解鎖,即使它是說,有在文件中沒有鎖,我無法刪除的文件夾,直到我沒有刪除單個文件...

之後它編譯。

編輯:

我發現了爲什麼在我的情況下,這是發生。我在Visual Studio中一個文本編輯器打開該DLL ...

+29

我在打開的許多視覺工作室窗口之一中打開了dlo。感謝您發佈該更新。 – ptfaulkner 2013-03-25 14:19:53

+3

同樣的事情,不知何故,在編輯器中的文本窗口中打開了Danged DLL。 – Harv 2013-04-10 19:07:11

29

關閉所有文件上VS並嘗試再次重建。如果它不工作重新啓動VS.此問題與DLL文件的鎖定有關。

64
  • 有時候當你在大約兩個或多個項目之間的引用 集版本不匹配的警告雙擊您忘記 關閉裝配視圖窗口和它的其他 選項卡中停留在那裏......所以你最終了大會由VS 本身被鎖定,花了我不少時間去弄清楚:)

    小心VS提供動力;)

  • 另一個虛擬場景。有時只需刪除整個目標文件夾或只是文件被警告,因爲鎖定的文件可以幫助解決這個問題。
6

關閉visual studio,刪除bin,調試發佈文件夾,並再次啓動visual studio項目。 是固定我的問題

1

關閉Visual Studio和運行它爲管理員。它解決了我的問題。

1

我在使用Ant構建Dot Net應用程序時看到了這些錯誤。

就我而言,這是我們的企業備份軟件Symantec DLO Agent。停止它並排除我的防病毒軟件中的目錄並關閉Visual Studio似乎可行。

0

我遇到了這個錯誤,結果證明問題是FxCop對我的項目運行。我關閉了FxCop,然後我可以再次編譯。

4

在我的情況下,我不得不殺死一個懸掛的MSBuild.exe進程,該進程鎖定了文件(即使關閉了Visual Studio後,它仍然存在)。

8

我是一名開發人員,不喜歡將應用程序注入到像Unlocker這樣的註冊表中。 我用SysInternals Process Explorer哪個進程鎖定了我的dll Find > Find Handle or Dll [Ctrl-F]並且終止了進程。

0

如果是一個Web應用程序刪除Temporary ASP.NET Files文件夾中的文件可能是一個解決方案。

3

其他人已經確定此錯誤是由於另一個應用程序鎖定了該文件。只是想指出,git diff鎖定文件,直到你退出它。這就是我的情況。

0

如果您使用AQ時間等分析器,這些也可能會鎖定文件。在這種情況下,解決方案是重新啓動分析器或簡單地從分析器中卸載/加載有問題的組件。 對於AQ時間,我注意到它在一段時間後釋放文件,但我不能爲了我的生活而告訴那個超時是什麼。 似乎是隨機的

0

今天我也有同樣的錯誤。我通過重建項目解決了這個問題。

2

對我來說,解決方案是關閉VS的所有實例並殺死任何懸掛的devenv.exe進程。

0

我的解決方案是重新啓動計算機。

2

我有同樣的問題。重新啓動對我無效。有一個名爲VBSCompiler的進程在任務管理器中運行。我不得不結束這個過程來解決這個錯誤。

2

這裏沒有任何解決方案適用於我。這是devenv.exe(Visual Studio)鎖定文件,但如果我重新啓動它,它會重新鎖定它。

奇怪的是,Windows不會讓我刪除文件(回收站),但Shift + Delete(永久刪除)工作。

1

刪除OBJ文件夾和重建工作對我來說

0

在我的情況下刪除該文件夾的obj項目的根和改造項目解決了我的問題!