2013-10-30 154 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

第一次机会异常不是需要解决的问题。如果异常得到处理,那么将不会影响您的代码。

这是您需要担心的未处理异常。