我有一個Visual Studio 2008項目,我「升級」到Visual Studio 2010.自升級以來,我一直在項目中遇到很多問題(一個項目當時仍然是項目管理員在2008年我可能會補充)。Visual Studio 2010構建文件鎖定問題
第一個問題是構建主要可執行文件會鎖定可執行文件,導致進一步的重建失敗。這是在一個相關的問題描述:Visual Studio locks output file on build,我拿起了解決方法:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
除了這種解決方法的工作原理完全一次。 .locked文件然後被devenv.exe鎖定,並且必須移動。我一直在通過添加.1.locked,.2.locked等來解決這個問題。只有在關閉devenv.exe時纔會關閉鎖,因此文件可以是已刪除(這需要幾秒鐘的時間UI消失,那麼文件可以被刪除)。
調試器不必被用來引發這個問題的事實指出了2010構建系統的一個非常嚴重的問題。
一些理論,我想我可以打折:
- 殺毒軟件或其它後臺任務:如果這是一個問題,它似乎2008年會失敗。然而,作爲一個完整的我刪除了avast!系統完全沒有運氣。
更新:此項目在沒有防病毒和無備份實用程序的機器上具有相同的症狀。在辦公室的機器運行XP SP3 32位,我的本地機器是Windows 7 64位。這看起來與操作系統無關。
- 調試器正在鎖定文件:重現此操作所需的所有內容都將重複構建過程而不進行調試。 ProcessExplorer顯示devenv.exe是鎖的持有者,而不是vshost,並且殺死vshost.exe並不會移除鎖。
我有一個第二個問題,一旦文件被鎖定就開始出現:表單設計器停止加載「找不到程序集」錯誤。我懷疑這些問題與早期的鎖定問題有關,因爲設計人員將之前的加入到構建中,但做出任何更改和重新構建都會導致所有設計人員崩潰(即使是我已打開並且作爲當前視圖)。
僅僅因爲您將「dummy = 1」更改爲「dummy = 2」而在接近白色錯誤屏幕的位置觀看錶單是一個可憐的事情,其中「dummy」完全不了了之,只是在完全不相關的程序集中強制重新編譯。
更新:我已經嘗試了幾個補救措施:啓用.NET源步進沒有被選中,所以這不是問題。刪除.SUO(解決方案用戶選項)只需重新啓動就可以解決問題(兩個版本:第一個,因爲沒有鎖定的文件,第二個是因爲有一個,但可以通過腳本重命名)。
Error 28 Unable to copy file "obj\Debug\PolicyTracker3.exe" to "bin\Debug\PolicyTracker3.exe".
The process cannot access the file 'bin\Debug\PolicyTracker3.exe' because it is being used by another process.
你有沒有解決過這個問題? – 2010-07-21 20:24:23
只要我在這裏得到的唯一答案中的信息,提到的功能(.NET框架源)未啓用,並且從未啓用。 – Godeke 2010-07-28 19:09:44
爲了記錄,我也遇到了這個問題,並且解決方案也是從2008年開始轉換的,所以也許這與它有關。我沒有得到表單設計師的問題,但其他的幾乎和你描述的完全一樣。 – 2010-08-14 17:53:39