2010-08-18 105 views
4

想知道是否有人有解決這個2010 bug的解決方案。我有一個在Visual Studio 2008中建好的項目,在2010年不會生成,因爲只有在設計器窗口打開時,Visual Studio纔會在應用程序運行後繼續執行dll。我創建了一個真正輕量級的項目來展示這個問題。如果你創建一個應用程序,然後創建一個lib DLL。將一個表單放入dll中,在設計視圖中打開表單,然後運行該應用程序。它會運行良好,然後關閉應用程序,轉到設計視圖中窗體的代碼視圖,然後更改代碼(我剛更名爲單個變量),然後嘗試重新編譯以獲得以下內容:Visual Studio 2010 Designer錯誤:無法從obj debug複製到bin debug

錯誤1無法將文件「obj \ Debug \ customlib.dll」複製到「build \ debug \ customlib.dll」。該進程無法訪問文件'build \ debug \ Customlib.dll',因爲它正在被另一個進程使用。

如果您運行Process Explorer並搜索dll,唯一保存dll的進程是devenv.exe!

我已經做了大量的搜索這個問題,並發現與Dev Studio的舊版本類似的問題,人們只能以add a pre-step將鎖定的DLL移動到另一個名稱(.locked)和構建。那是第一次運行,但下次運行然後編輯時,你被鎖定了當前的dll和你移動到的.locked,所以除非我願意添加代碼爲隨機生成的鎖定dll的名稱,這不會爲我工作(我不希望我的調試目錄大小增長與文件永遠不會被刪除。)

我只找到一個解決方法,如果你在同一條船這是我必須做的編輯並運行。我確定每個設計視圖窗口都關閉之前我曾經在調試器中運行我的項目。如果關閉所有打開的設計視圖窗口,devenv.exe將不會保存該dll。

有沒有人有更好的解決這個問題?

+0

這很煩人,並且只要我記得,一直在各種VS中發生。嘗試創建一個最小的複製項目並儘可能多地將其提交給Microsoft Connect。也許你找到了他們可以修復的一個。 – 2010-08-18 19:05:39

+0

非常棒的建議,我只是添加了一個錯誤,讓我們看看它是什麼。 – 2010-08-18 19:32:33

+2

這裏是MS Connect中問題的鏈接(https://connect.microsoft.com/VisualStudio/feedback/details/587281/vsual-studio-2010-designer-bug-unable-to-copy-from-obj-debug -bin-debug)如果您遇到同樣的問題,請單擊「我可以重新生成」按鈕。我認爲做的人越多,這個機會就越好。 – 2010-08-24 19:02:14

回答

3

我不知道這是否會爲你工作或沒有,但this similar question如果你有這一行的AssemblyInfo.cs:

[assembly: AssemblyVersion("2.0.*")] 

將其更改爲:

[assembly: AssemblyVersion("2.0.0.0")] 

將解決這是。

Visual Studio加載項「VSCommands」聲稱對此問題有修復。我沒有測試過,但它也聲稱有一個在-IDE計算器信譽跟蹤這令我着迷:)

你「關閉設計師調試之前」解決辦法似乎是爲我工作(到目前爲止) ,對此我很感激。它已經開始進入我大部分時間都花在以下工作流程中的階段......

  1. F5

  2. 大聲咒罵

  3. ALTF4

  4. WIN

  5. 等待不耐煩地...

  6. F5
+0

我必須生成版本號,因此解決方法不能解決我的問題。我在工作流上和你在一起,我也在做同樣的事情。感謝你的回答。 – 2010-12-01 19:29:15

1

我有同樣的問題,很長一段時間,然後突然他們消失了。我意識到問題的根源是在WCF服務和WPF控件的構造函數中初始化代碼。從任何依賴關係清理構造函數到其他程序集後,一切都很好。

所以我的建議是:清理你的構造函數。

在WPF可能的是,插入:

if (DesignerProperties.GetIsInDesignMode(this)) return; 

或類似將具有相同的效果。

+0

我們遇到的這個問題是在Forms中,而不是在WPF中,儘管它也發生在我們的WPF項目中。我會嘗試一下。謝謝。 – 2010-12-15 13:44:57

相關問題