2013-10-30 193 views
4

當我在VS2010中啓用first-chance exceptions時,我第一次收到以下消息EntityFramework'sSaveChanges()。這是運行MSSQL CE 4數據庫的WinForms應用程序。Microsoft.SqlServer.Types加載失敗

BindingFailure與顯示名稱「Microsoft.SqlServer.Types」中的「負載」結合在AppDomain的上下文ID爲1。 原因故障是未能 負載的組件:System.IO .FileLoadException:無法加載 文件或程序集'Microsoft.SqlServer.Types,版本= 11.0.0.0, Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其一個 依賴項。找到的程序集的清單定義不符合程序集引用的 。

繼續後,也顯示這樣的信息:

FileLoadException 無法加載文件或程序集「Microsoft.SqlServer.Types, 版本= 11.0.0.0,文化=中性公鑰= 89845dcd8080cc91'或 其依賴關係之一。找到的程序集清單定義 與程序集引用不匹配。 (異常來自HRESULT: 0x80131040)

我已經包含在項目中Microsoft.SqlServer.Types.dll

我知道這是第一次機會的異常,並且在調試時似乎並未影響通知之外的應用程序,但我想解決它。 (這是在我的腦海裏縈繞着我。)

首先,這是什麼錯誤消息試圖告訴我?

二,如何解決?

+0

您需要安裝Windows.SqlServer.Types軟件包... 從http://www.microsoft.com/en-in/download/details.aspx?id=16978下載或使用'安裝nugGet軟件包'安裝包Microsoft.SqlServer.Types' – noobob

+0

@noobob我沒有看到Windows.SqlServer.Types包。我錯過了嗎?還是被稱爲別的東西?下載頂部的「軟件包」會得到一個txt文件,其中說明「SQL Server 2008 R2功能包組件的鏈接」可以在SQL Server 2008 R2功能包頁面上的「說明」部分找到。「但是,我沒有在說明文件的說明部分看到下載。 – teynon

+0

@noobob我已經安裝了軟件包,仍然收到消息。 – teynon

回答

3

如果您正在使用空間類型EF需要探測在AppDomain中加載的SqlTypes綁定到它以便在與SqlServer交談時使用它。 Here是這樣做的代碼。如果你看BindToLatest()方法,你會看到這個異常,如果實際上被捕獲並被忽略。只有在調試時纔會看到它,因爲您可能在選中「調試 - >異常,公共語言運行時異常,」引發「列」時可能會出現「break when exception is thrown」選項

0

第一次機會異常不是需要解決的問題。如果異常得到處理,那麼將不會影響您的代碼。

這是您需要擔心的未處理異常。