Sql server 使用Sql Server Management Studio 2016导入bacpac时出错-无法加载文件或程序集Microsoft.SqlServer.Dac

Sql server 使用Sql Server Management Studio 2016导入bacpac时出错-无法加载文件或程序集Microsoft.SqlServer.Dac,sql-server,ssms,sql-server-data-tools,Sql Server,Ssms,Sql Server Data Tools,我从Azure门户创建了.bacpac文件并将其保存到桌面。然后在ManagementStudio 2016中,候选人右键单击数据库并选择导入数据层应用程序,我的目标是我的文件,然后下一步。。。当它进入进程时,我得到了一个错误: 无法加载文件或程序集“Microsoft.SqlServer.Dac,版本=13.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找不到指定的文件。(Microsoft.SqlServer.Management.

我从Azure门户创建了.bacpac文件并将其保存到桌面。然后在ManagementStudio 2016中,候选人右键单击数据库并选择导入数据层应用程序,我的目标是我的文件,然后下一步。。。当它进入进程时,我得到了一个错误:

无法加载文件或程序集“Microsoft.SqlServer.Dac,版本=13.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找不到指定的文件。(Microsoft.SqlServer.Management.Dac.DacWizard)

我在谷歌上搜索,但找不到任何可行的解决方案。你能帮忙吗

另请查看有关配置的图片:


您可以从以下位置下载最新版本的数据层应用程序框架(包括Microsoft.SqlServer.Dac):

请注意,您还应根据下载页面的系统需求部分安装依赖项SqlDom和SqlSysClrTypes:

依赖关系 Microsoft SQL Server数据层应用程序框架需要Microsoft SQL Server系统CLR类型和Microsoft SQL Server Transact-SQL脚本DOM(SQLSysCLRTypes.msi和SQLDOM.msi),这两种类型都在下面提供。如果您在x64计算机上,则需要安装上述MSI的x64和x86版本

  • SQLSysCLRTypes.msi x64-
  • SQLSysCLRTypes.msi x86-
  • SQLDOM.msi x64-
  • SQLDOM.msi x86-

  • 这是由于SSMS中的一个bug造成的,应该在将来的版本中修复该bug。问题在于,如果安装了Lightswitch for VS2015,SSMS用于查找DLL的绑定路径将包括对130版本之前的DacFx DLL的早期110版本的引用。这会导致上述错误,因为默认情况下Visual Studio返回第一个匹配的DLL

    解决方案:

  • 在文本文件查看器中打开“C:\Program Files(x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\ssms.pkgundef”。您需要以管理员身份运行此查看器才能对其进行编辑
  • 添加以下行以确保将来忽略110绑定路径并保存文件:

    [$RootKey$\BindingPaths\{272EA915-68EE-4AFD-99A4-1286126565EC}]

  • 接下来,我们需要从注册表中删除它,因为它已经添加了一次。打开Regedit.exe并导航到“HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\13.0_Config\BindingPath”

  • 从该键下删除文件夹{272EA915-68EE-4AFD-99A4-1286126565EC} 注意:这只会发生在安装了VS2015且其中安装了Lightswitch软件包的机器上。原因是VS2015绑定路径包含在独立的Shell应用程序(如SSM)中,除非pkgundef文件将其排除在外。即将发布的版本中将包含修复程序


    披露:我在SQL Server工具团队工作

    我很好奇SSMS是如何在没有数据层应用程序框架的情况下安装的。您是否卸载了任何东西或在安装过程中出现了问题?可能值得尝试为SQL 2016安装最新的SSDT位。我安装了这个3.6MB的软件包,但收到了相同的错误消息。这些依赖关系在哪里?做了所有的事情但仍然是一样的,有什么我可以做更多的事情来让它工作吗?我还附上了图片在我的帖子时,试图更新这个修复不适合我。我还(在尝试了此修复之后)安装了4月份的预览版。不起作用;同样的错误。然后,我从BindingPaths注册表项中重新删除了“272EA915…”文件夹(在安装四月预览版时再次出现)。同样的错误。我可以让你直接联系我吗,或者我们可以在一次聊天中讨论这个问题吗?我最终在一个新的虚拟机上得到了这个工作,所以很明显这是一些与我安装的其他东西不兼容的问题。我发现一个MSDN论坛帖子有一个类似的解决方案:嗨,Dave-问题是当回答这个问题时,我没有注意到StackOverflow转换的反斜杠后面跟着一个{这是一个转义序列。它丢失了\after绑定路径。我已更新了答案-将更新的条目添加到pkgundef将对您有效。谢谢Kevin,很好的捕获。这最终对我有效。我感谢后续操作。这并不是修复我的版本(Microsoft SQL Server Management Studio 13.0.800.111)我在注册表中找不到该项。我有{D0D30252-767F-4BFA-B7A5-5e470c50c1}&{687b26ef-c096-4f2d-9f8c-aaafada321ac}