C# 未能加载Microsoft.SqlServer.Types

C# 未能加载Microsoft.SqlServer.Types,c#,entity-framework,first-chance-exception,C#,Entity Framework,First Chance Exception,当我在VS2010中启用了first-chance异常时,我在第一次调用EntityFramework的SaveChanges()时收到以下消息。这是一个运行MSSQL CE 4数据库的WinForms应用程序 BindingFailure显示名为“Microsoft.SqlServer.Types”的程序集无法启动 在ID为1的AppDomain的“加载”绑定上下文中加载。这个 失败的原因是:System.IO.FileLoadException:无法加载 文件或程序集'Microsoft.S

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

BindingFailure显示名为“Microsoft.SqlServer.Types”的程序集无法启动 在ID为1的AppDomain的“加载”绑定上下文中加载。这个 失败的原因是:System.IO.FileLoadException:无法加载 文件或程序集'Microsoft.SqlServer.Types,版本=11.0.0.0, 区域性=中性,PublicKeyToken=89845dcd8080cc91'或其 依赖关系。定位程序集的清单定义不正确 匹配程序集引用

继续后,还会显示此消息:

FileLoadException 无法加载文件或程序集的Microsoft.SqlServer.Types, 版本=11.0.0.0,区域性=中性,PublicKeyToken=89845dcd8080cc91'或 它的一个依赖项。找到的程序集的清单定义 与程序集引用不匹配。(HRESULT的例外情况: 0x8013100)

我已经在项目中包含了
Microsoft.SqlServer.Types.dll

我知道这是第一次出现异常,在调试时,它似乎不会影响通知之外的应用程序,但我还是想修复它。(这件事一直困扰着我。)

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


其次,我如何修复它?

如果您使用的是空间类型,EF需要探测AppDomain中加载了哪些SqlTypes以绑定到它,以便在与SqlServer对话时使用它。是执行此操作的代码。如果查看
BindToLatest()
方法,您将看到异常实际上被捕获并忽略。您只有在调试时才能看到它,因为您可能选中了“抛出异常时中断”选项(调试->异常,公共语言运行时异常,“抛出”列)

第一次机会异常不是要修复的问题。如果处理了异常,则不会对代码产生影响


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

您需要安装Windows.SqlServer.Types软件包。。。使用Microsoft.SqlServer.Types安装包从nugGet软件包下载或安装nugGet软件包
@noobab我没有看到Windows.SqlServer.Types软件包。我是错过了还是叫别的什么?下载顶部的“包”会得到一个txt文件,上面写着
指向SQL Server 2008 R2功能包组件的链接可以在SQL Server 2008 R2功能包页面的“说明”部分找到。
但是,我在“说明”部分没有看到所述软件包的下载。@Noobb我已经安装了该软件包,但仍然收到消息。