Microsoft.SqlServer.Types无法加载

时间:2013-10-30 15:44:56

标签: c# entity-framework first-chance-exception

当我在first-chance exceptions中启用VS2010时,我第一次拨打EntityFramework's SaveChanges()时收到以下消息。这是运行WinForms数据库的MSSQL CE 4应用程序。

  

BindingFailure 显示名称为“Microsoft.SqlServer.Types”的程序集未能   加载ID为1的AppDomain的“加载”绑定上下文   失败的原因是:System.IO.FileLoadException:无法加载   文件或程序集'Microsoft.SqlServer.Types,Version = 11.0.0.0,   Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。

继续之后,还会显示以下消息:

  

FileLoadException   无法加载文件或程序集'Microsoft.SqlServer.Types,   Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或   其中一个依赖项。定位程序集的清单定义   与装配参考不匹配。 (HRESULT的例外情况:   0x80131040)

我在项目中加入了Microsoft.SqlServer.Types.dll

我知道这是第一次机会异常,在调试时似乎不会影响通知之外的应用程序,但我还是想修复它。 (这让我感到烦恼。)

首先,这个错误消息试图告诉我什么?

其次,我该如何解决?

2 个答案:

答案 0 :(得分:3)

如果您正在使用空间类型,EF需要探测在AppDomain中加载哪些SqlTypes以绑定到它,以便在与SqlServer通信时使用它。 Here是执行此操作的代码。如果查看BindToLatest()方法,您会看到异常,如果实际被捕获并被忽略。您只能在调试时看到它,因为您可能选中了“抛出异常时中断”选项(Debug - > Exceptions,Common Language Runtime Exceptions,“Thrown”列)

答案 1 :(得分:0)

第一次机会异常不是一个需要解决的问题。如果处理了异常,那么对您的代码不会产生任何影响。

这是你需要担心的未处理的例外情况。