为啥安装 .NET Framework 4.51 会导致针对框架版本 4 的应用程序中出现“Microsoft.SqlServer.Types 错误”

Posted

技术标签:

【中文标题】为啥安装 .NET Framework 4.51 会导致针对框架版本 4 的应用程序中出现“Microsoft.SqlServer.Types 错误”【英文标题】:Why does installation of .NET Framework 4.51 causes 'Microsoft.SqlServer.Types error in application targeted to ver 4 of framework为什么安装 .NET Framework 4.51 会导致针对框架版本 4 的应用程序中出现“Microsoft.SqlServer.Types 错误” 【发布时间】:2014-11-27 00:08:21 【问题描述】:

我正在开发一个针对 .NET 4 框架的 Winform 应用程序,并且我正在为我的数据库使用 SQL Server 2005。最近在执行Entity Framework SaveChange方法时开始报如下错误:

无法加载文件或程序集“Microsoft.SqlServer.Types,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。系统找不到指定的文件。":"Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" System.Exception System.IO.FileNotFoundException

我花了很多时间试图弄清楚这一点,并发现它似乎与我机器上安装 .NET Framework 4.5.1 有关。如果我删除 4.5.1(当然我必须重新安装 .NET 4 框架),一切都会再次正常工作。我注意到 4.5.1 似乎已安装到 4.0X 文件夹中并替换了许多文件,但我假设需要更新版本的 Microsoft.SqlServer.Types 但未安装,这是一个已知问题吗?修复?

谢谢

【问题讨论】:

您说您必须重新安装 4.0 才能修复它,您确定要安装与 4.5.1 相同的 4.0 吗?你不是简单地安装 4.0 full vs 4.5.1。客户资料? 我进入程序和功能并删除 4.5.1,一旦完成,我查看了 4.0X 文件夹,它几乎完全是空的,所以我从那里安装了 4.03。 4.5.1 似乎使用与 4.03 相同的文件夹。 是的,但是“什么”4.03,重要的不是版本号,有多个“不同”的 4.03,有客户端配置文件(一个子集)和完整的框架(一切),我的直觉感觉是你有一个 4.5.1 客户端配置文件,当你删除它时,你安装了一个 4.0 完整配置文件(它不是最新的,但确实包含额外的程序集)。您能否重新安装 4.5.1,确保下载完整的配置文件并检查它是否为您修复? @RonanThibaudau,4.5.x 甚至没有客户端配置文件,根据 msdn.microsoft.com/en-us/library/cc656912(v=vs.110).aspx 好点,不知道,很高兴它总是发现它是一个愚蠢的概念! 【参考方案1】:

对于同样使用实体框架的应用程序,我必须安装Microsoft System CLR Types for SQL Server 2012。

我不知道这个 2012 软件包是否适用于您的 SQL Server 2005,所以请尝试一下。

【讨论】:

以上是关于为啥安装 .NET Framework 4.51 会导致针对框架版本 4 的应用程序中出现“Microsoft.SqlServer.Types 错误”的主要内容,如果未能解决你的问题,请参考以下文章

为啥 .NET framework 3.5 离线安装程序比 .NET 4 离线安装程序大 200 MB?

为啥安装mysql提示安装.net framework 4.0

为啥最新版的VS2017没有net framework 4.6.2,且我无法安装

为啥将我的目标框架从“.NET Framework 4 Client Profile”更改为“.NET Framework 4”会出现警告消息?

为啥我无法卸载 .NET Framework 4.8?

为啥我不能在没有安装Visual Studio的机器上运行调试版的.NET程序