2010-09-17 92 views
4

之前釋放的DLL與Visual Studio生成時,我有一個週期性出現的問題,2010年 有時,拒絕建立與類似的錯誤消息:VS2010並不總是建立

錯誤102無法複製文件「XXXXX \ Debug \ Services.dll「改爲」bin \ Debug \ Services.dll「。該進程無法訪問文件'bin \ Debug \ Services.dll',因爲它正在被另一個進程使用。

我發現的唯一補救措施是重新啓動Visual Studio。關閉解決方案是不夠的。 我試圖找到與Process Explorer的罪魁禍首,因爲我懷疑我自己的一個線程沒有關閉,因爲它應該。但是,該過程是devenv.exe,即Visual Studio本身。此外,即使在構建升級的VS 2008項目時,我也只能通過VS 2010獲得此症狀。我從來沒有遇到與VS 2008下的相同項目的這個問題。

我有很多自定義的WPF用戶控件,我有一個理論認爲它是WPF設計器,有時會保持在控件的相關dll的時候釋放他們的建設。這個理論並不完善,因爲這是一個週期性問題,有時在沒有設計公開的情況下發生。我也有一個Windows窗體項目相同的問題。有時候我會在一天沒有鎖定的dll。有時它是每隔一個建築物左右。

我已經問過微軟這個問題,他們告訴我做一個Visual Studio的轉儲並調試轉儲。我沒有發現這是一個很好的建議。

有沒有人經歷過類似的事情?這真的很煩人。

更新1

因爲這似乎是一個Visual Studio的漏洞和微軟的迴應是,他們不打算做任何事情,我想鼓勵大家誰與自定義用戶的工作控件上調在connect.microsoft.com上投票這個bug。

該錯誤是都在這裏報道:https://connect.microsoft.com/VisualStudio/feedback/details/587281和我在這裏https://connect.microsoft.com/VisualStudio/feedback/details/568672

更新2 我已經破解一起簡單的Visual Studio宏,建設之前關閉了所有.XAML文件。到目前爲止,我還沒有經歷過這個宏的鎖定。 在Visual Studio中添加以下宏,並將其分配給您最喜歡的構建捷徑。也許/也許不會解決問題。

Imports System 
Imports EnvDTE 
Imports EnvDTE80 
Imports EnvDTE90 
Imports EnvDTE90a 
Imports EnvDTE100 
Imports System.Diagnostics 

Public Module CloseXamlAndBuildModule 
    Sub CloseXamlAndBuild() 
     For Each myDocument As EnvDTE.Document In DTE.Documents 
      If myDocument.Name.EndsWith(".xaml") Then 
       myDocument.Close() 
      End If 
     Next 
     DTE.Solution.SolutionBuild.Build() 
    End Sub 

End Module 
+0

您使用哪種語言? – 2010-09-17 14:42:56

+0

我使用C#4.0。我已經嘗試過VS 2010 pro和VS 2010 Ultimate。我也嘗試刪除所有插件,但它沒有改變任何東西。在舊的.NET 2.0項目中也會出現該問題。 – Holstebroe 2010-09-17 15:24:32

回答

3

我終於找到了一個穩定的工作解決方案。我意識到問題的根源是在WCF服務和WPF控件的構造函數中初始化代碼。從任何依賴關係清理構造函數到其他程序集後,一切都很好。

1

這是一個相當持久的抱怨VS2010,雖然它不是廣泛傳播。我還沒有看到一個很好的診斷。要觀看的反饋項目是this one,它似乎是大多數副本的收藏家。更快解決問題可能需要在Microsoft支持部門打開一個案例。

+0

它看起來像我將不得不應付它,直到服務包到達。解決方法將是很好,但。 – Holstebroe 2010-09-17 15:44:40

+0

「如果關閉所有打開的設計視圖窗口,devenv.exe將不會保留dll」 – xtofl 2010-10-29 12:08:22

2

嘗試使用VSCommands插件。 它有'應用修復'選項,可以讓你關閉任何文件鎖定的進程(通常不是可以被殺死的vshost進程)。

alt text alt text

+3

我可以嘗試,但Process Explorer告訴我這是保持打開文件的devenv。殺死那會是一種自殺。如果您的線程或非託管資源出現問題,vshosts通常會四處閒逛。我不能排除這種情況,但它看起來更像是一個Visual Studio的東西。 – Holstebroe 2010-09-17 20:37:47

0

其實我報這個問題微軟連接前一陣子,但在一段時間沒有檢查的問題。我原來給微軟的報告是here

其中的評論是重現與自定義用戶控件(如我懷疑)的問題的方法。

微軟剛剛回復了一個標準「感謝您的反饋,您的建議不符合要解決的標準」。謝謝微軟。我想我只需要每隔一小時重新啓動一次Visual Studio。