无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0。

121
我安装了MS SQL Server 2008 R2,但当我尝试在EDMX文件下从数据库更新模型时出现以下错误:

无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0

我尝试从这里安装了Microsoft SQL Server 2008 R2共享管理对象,但没有成功。
12个回答

289

问题:(Sql server 2014) 当Visual Studio找不到程序集Microsoft.SqlServer.management.sdk.sfc版本12.0.0.0时,会出现此问题。

解决方案:只需转到http://www.microsoft.com/en-us/download/details.aspx?id=42295并下载:

  • X64操作系统的ENU\x64\SharedManagementObjects.msi
  • X86操作系统的ENU\x86\SharedManagementObjects.msi

然后安装它并重新启动Visual Studio。

PS:您可能还需要安装DB2OLEDBV5_x64.msiDB2OLEDBV5_x86.msi


问题: (Sql server 2012) 当Visual Studio找不到程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0时,会出现此问题。

解决方案:只需前往http://www.microsoft.com/en-us/download/details.aspx?id=35580并下载:

  • ENU\x64\SharedManagementObjects.msi 适用于 X64 操作系统 或
  • ENU\x86\SharedManagementObjects.msi 适用于 X86 操作系统,

然后安装它,并重新启动 Visual Studio。


问题:(Sql server 2008)当 Visual Studio 找不到程序集 Microsoft.SqlServer.management.sdk.sfc 版本 10.0.0.0 时,会出现此问题。

解决方案:只需前往http://www.microsoft.com/en-us/download/details.aspx?id=26728并下载:

  • 1033\x64\SharedManagementObjects.msi 适用于 X64 操作系统 或
  • 1033\x86\SharedManagementObjects.msi 适用于 X86 操作系统,

在大多数情况下,下载此文件会更好 http://go.microsoft.com/fwlink/?LinkId=123708&clcid=0x409

然后安装它,并重新启动Visual Studio。


问题:我最近在安装SharedManagementObjects后遇到了类似的问题。Visual Studio找不到程序集Microsoft.SqlServer.ConnectionInfo, Version=12.0.0.0。问题是尚未安装Visual C++ Redistributable Packages for Visual Studio

解决方案:对于Visual Studio 2013,只需转到http://www.microsoft.com/en-us/download/details.aspx?id=40784并下载:

  • vcredist_x64.exe适用于X64操作系统或
  • vcredist_x86.exe适用于X86操作系统,

然后安装它,并重新启动Visual Studio。

PS:如果您需要其他版本的Visual Studio,您可以通过Google轻松找到相应版本的Visual C++ Redistributable Packages for Visual Studio 20XX


10
在我的情况下(Windows Server 2008 R2 Standard(x64); VS2013;未安装SQL Server),必须先安装“ENU \ x64 \ SQLSysClrTypes.msi”,然后再安装“ENU \ x64 \ SharedManagementObjects.msi”。 - Erik Anderson
1
@Imam 我已经安装了SQL Server 2008 R2 Express,但它给出了版本号为11.0.0的错误,就像我安装了SQL Server 2012一样。如果我尝试安装1033\x86\SharedManagementObjects.msi,则错误不会改变。如果我尝试安装ENU\x86\SharedManagementObjects.msi,则显然会出现错误。为什么?我该怎么办? - Piero Alberto
1
说句实话,我在卸载 SQL Server 2012 并安装了 VS 2013 后安装了 SQL Server 2014 后遇到了这个问题。我需要重新安装 SQL Server 2012 共享管理对象才能使 VS2013 正常工作。安装 2014 共享管理对象没有任何效果。 - Chris
1
即使您使用的是64位操作系统,如果您的应用程序属性中选中了“优先使用32位”,则您仍需要32位版本。对于Visual Studio 2015控制台应用程序来说,这是默认设置。 - mhenry1384
2
提醒:安装共享管理对象需要CLR类型。您需要先下载适当的x86/x64 CLR类型安装程序,然后再安装共享管理对象。 - Mike
显示剩余9条评论

13

我想分享一下我的经验。

我也遇到了这个错误。我使用的是MS Visual Studio 2013,我有一个MS SQL Server 2008,尽管之前我安装过MS SQL Server 2012。

我为这个错误努力了一整天。我尝试安装SharedManagementObject、SQLSysClrTypes和Native Client,但都没有成功。为什么呢?最终我发现,我安装的是2008或2012版本的文件,而我正在使用Visual Studio 2013!! 我的想法是,由于这是一个数据库问题,文件的版本应与笔记本电脑上安装的MS SQL Server相同,但显然,我应该安装2013版本,因为错误来自Visual Studio而不是SQL Server。


5
我曾经遇到过一个问题,就是Visual Studio 2013连接SQL Server 2014时出现了问题。我一直忽略了上面的SQL 2012 SP1链接,认为它不适用于我。多亏了你@Gel,我最终安装了2012 SP1并解决了这个问题。 - user426364
@Gel,你安装了哪个SharedManagementObject? - Piero Alberto
@Piero 我在 Visual Studio 2013 的包中安装了 SharedManagementObject。 - Gellie Ann
1
Visual Studio 2013与SQL Server 2014... 我还需要2012 SP1 SharedManagementObject文件。感谢您的帮助:http://www.microsoft.com/en-us/download/details.aspx?id=35580 - Jacob Raines

10

我正在运行VS 2012和SQL Server 2008 R2 SP2开发版。最终我不得不安装微软® SQL Server® 2012功能包中的项目。我认为安装说明指出这些项目适用于SQL Server 2005到2012。我不知道修复此错误的确切要求是什么,但我安装了三个项目,错误就停止出现了。

Microsoft® SQL Server® 2012功能包项目

  • Microsoft® SQL Server® 2012共享管理对象:x86x64
  • Microsoft® System CLR类型 for Microsoft® SQL Server® 2012:x86x64
  • Microsoft® SQL Server® 2012本机客户端:x86x64

根据其他地方的帖子,您可能不需要最后一两个项目。祝好运!


8
我正在使用Visual Studio 2013和SQL Server 2014。我遇到了以下错误:Microsoft.SqlServer.management.sdk.sfc version 11.0.0.0,Visual Studio找不到。
实际上,我预期会出现Microsoft.SqlServer.management.sdk.sfc version 12.0.0.0的错误,因为我正在使用SQL Server 2014。
为了解决这个问题,我必须从以下网站安装SQL Server 2012的SharedManagementObject.msihttp://www.microsoft.com/en-us/download/details.aspx?id=35580 注意:您可以参考https://dev59.com/Z2Qn5IYBdhLWcg3wVF_i#19246011的答案,但要关注错误版本以选择下载,而不是关注SQL Server版本。

7

6
对于那些遇到此问题的人,我刚找到了解决方法。 先决条件:使用 VS 2015 和 SQL Server 2012。 症状:无法加载此子系统:Microsoft.SqlServer.management.sdk.sfc 版本12.0.0.0。 此时您可能会像我一样感到困惑,因为您正在使用 SQL Server 2012,但是 VS 2015 正试图使用来自 SQL Server 2014 的版本12.0.0.0。 事实证明,当您安装 SQL Server 2012 时,它会从 SQL Server 2014 安装几个组件。有一次我从计算机中删除了所有 SQL Server 的痕迹(使用添加程序控制面板)。当我重新安装 SQL Server 2012 时,它要么没有重新安装 2014 年组件,要么我再次删除它们,认为第一次错过了它们。 结果是我在系统上没有必要的 2014 年库。我还尝试安装了如上所述的 2014 年共享管理对象,但这行不通,因为我没有 2014 年的 CLR 运行时。因此,为了使 VS 2015 系统与 SQL Server 2012 协同工作,您必须确保安装了这两个 2014 年软件包。
  • ENU\x64\SQLSysClrTypes.msi
  • ENU\x64\SharedManagementObjects.msi

来自SQL Server 2014功能包。如果需要,选择32位版本。

这是帮助我解决问题的网站


3

只需使用MS Web平台安装程序4.5来安装与MS SQL Server 2008 R2相关的所有内容。

并且不要忘记重新加载计算机。

:)


1
我从@ImanMahmoudinasab提供的链接中下载了“Microsoft® System CLR Types for Microsoft® SQL Server® 2012”和“Microsoft® SQL Server® 2012 Shared Management Objects”,但在安装“Shared Management Objects”时出现了一些依赖关系消息,最终安装失败!

最后我用Power Shell解决了这个问题。我以管理员身份运行PS,并使用以下命令:

Start-Process <path>\SharedManagementObjects.msi

1
我在使用Visual Studio 2013Microsoft SQL Server Management Studio 2016时,尝试使用Entity Framework migrations更新数据库时遇到了错误。
解决方法是安装Microsoft SQL Server Management Studio 2012 SP1,因为Visual Studio 2013缺少连接到SQL Server数据库所需的必要库。

1
请避免链接到外部资源。尽管它可能是一个答案,但外部资源可能会在未来发生变化,不再有帮助。 - Korashen

1

Iman Mahmoudinasab的回答的补充

对于SQL Server 2016,这是文件所在的位置:

https://www.microsoft.com/en-us/download/details.aspx?id=52676

请注意,文件在列表中,但您可能需要向下滚动以查看/选择它。
从SQL Server 2017开始,情况有所改变:
"从SQL Server 2017开始,SMO作为Microsoft.SqlServer.SqlManagementObjects NuGet软件包分发,允许用户使用SMO开发应用程序。"
来源:https://learn.microsoft.com/en-us/sql/relational-databases/server-management-objects-smo/installing-smo?view=sql-server-2017

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接