2015-05-08 68 views
3

我正在使用visual studio 2013與統一3.5下載使用nuget。我有容器類,看起來像下面調試後視覺工作室錯誤有效代碼爲無效編輯

public class Container 
    { 
    static IUnityContainer _container; //<- System IDisposable error on _container 
    static ILogger _logger = GetLogger(); 

    //continuation here 
    } 

我的問題是,當我執行的應用程序,調試運行正常,但如果我在上面的調試過程中編輯完全無關的類的聲明中,當我簡歷調試我用_container以下的藍色下劃線獲得以下奇怪的錯誤!

enter image description here

類型 'System.IDisposable的' 在一個組件,該組件不 引用定義。你必須在這之後我將不得不停止調試並重新啓動加入程序集「System.Runtime, 版本= 4.0.0.0,文化=中性公鑰= b03f5f7f11d50a3a」

參考。不觸及任何錯誤消失並可以調試回來。

我在Framework程序集中尋找System.Runtime程序集,但找不到它。可用的組件有:

System.Runtime.caching System.Runtime.DurableInstancing System.Runtime.Remoting System.Runtime.Serialization System.Runtime.Serialization.Formatters.Soap

任何方式如何至少追蹤這個錯誤?

+7

調試代碼時調試真的是一個偉大的想法嗎?它似乎只在有限的情況下工作,我會想象使用依賴注入不會是其中之一... –

+0

@DanField我不能同意你,因爲我覺得它在很多情況下非常有用,我想問爲什麼你認爲它不是,但那將是另一個主題。 – MusuNaji

+1

它可能很有用,但是如果你在使用它的時候你可能想要考慮創建一些單元測試 - 我意識到這不是你的問題的答案,但是如果事實證明你不能做你所做的試圖做,一套單元測試可能會是一條路。 –

回答

2

最後我找到了解決方案。

有一個system.runtime.dll%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\我加了一個參考,它解決了這個問題。我不知道這是否正確,但至少IDisposable錯誤消失了。 我想知道爲什麼這個程序集沒有在標準程序集列表中列出。

2

我遇到了同樣的問題(雖然我不需要在調試時編輯來觸發它)。對我來說,事實證明(錯誤)錯誤消息實際上是由Resharper而不是Visual Studio生成的。我能夠通過做Tools | Options | Resharper | Suspend Now來證實這一點;所有的小紅色波浪立即消失。有了這個線索,我能夠發現this ticket;這表明這是Resharper 9.0的一個已知問題。該修補程序將包含在版本9.2中,該版本似乎計劃在八月份發佈。如果您像我一樣不耐煩,您可以通過安裝this location安裝最新的EAP(早期訪問預覽)來獲得修復程序。