2010-11-04 64 views
1

我正在使用Visual Studio編寫一個用C#編寫的gui應用程序,我遇到了一個非常惱人的bug,當我對應用程序進行更改時,第一次嘗試調試它,但是當我嘗試再次調試應用程序時,我得到一個錯誤,說它不能將一個exe文件從obj目錄複製到bin目錄。visual studio C#鎖定.exe文件

重新啓動visual studio修復此問題。

雖然不得不重新啓動它真的很煩人。網上似乎有很多關於此的帖子,但似乎沒有人找到解決方案。有沒有人能夠解決這個問題?

+0

我只在VMWare虛擬機中運行生成的EXE時纔看到這個。這是你的情況嗎? – 2010-11-04 16:37:33

+0

沒有。我正常運行Windows 7。 – 2010-11-04 16:52:27

+1

exe是否仍在運行(檢查任務管理器)? – 2010-11-04 17:08:48

回答

0

這是一項服務嗎?您可能必須在重新編譯前安裝-lu

+0

不,這只是一個普通的GUI應用程序 – 2010-11-04 18:22:08

4

嘗試VSCommands 2010 extension。 當您再次收到錯誤時,請點擊錯誤列表中的消息,然後點擊上下文菜單中的「應用修復」。這將告訴你哪個進程位於文件上並允許你終止它。

長時間運行後,可能會出現後臺線程正在運行,應用程序結束時不會終止。

+0

我用過程資源管理器來看看這個,它是VS鎖定文件(不出所料)。後臺線程是通過將backgroundWorker添加到GUI所使用的表單中的,因此我不知道如何在應用程序退出時擱置一個線程。 – 2010-11-04 19:57:03

1

我有同樣的問題。我在另一個線程中(不記得是哪),對於一些深不可測的原因,你可以改變你的AssemblyInfo.cs文件中聲明的程序集的版本從

AssemblyVersion("1.0.*") 

AssemblyVersion("1.0.0.0") 

還是其他明確的版本,並且問題消失。這對我來說工作得很好。不過,我希望有一個解決方案可以讓我使用通配符版本。或者解釋爲什麼assemblyversion導致文件被鎖定。

0

在我的情況下,它是反病毒軟件Avira antivir。當我在例外中添加發布文件夾時,問題就消失了。 Avira通常需要很長時間才能在後臺掃描東西,顯然是在可以覆蓋之前鎖定exe文件。掃描完成後,文件解鎖。當我的開發/測試周期小於30秒(通常是)時,它會在重試10次後觸發此錯誤。

相關問題