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

时间:2016-04-14 19:42:33

标签: sql-server ssms sql-server-data-tools

我从Azure门户创建了.bacpac文件并将其保存到桌面。然后在Management Studio 2016 Candidate中右键单击Databases并选择Import data tier application我将我的文件定位到下一个...当它进入流程时我收到错误:

无法加载文件或程序集“Microsoft.SqlServer.Dac,Version = 13.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。您找不到指定的文件。 (Microsoft.SqlServer.Management.Dac.DacWizard)

我正在搜索谷歌,但我找不到任何有效的解决方案。你能帮忙吗?

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

SQL configuration

2 个答案:

答案 0 :(得分:11)

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

解决方案:

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

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

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

  4. 从此键下删除文件夹{272EA915-68EE-4AFD-99A4-1286126565EC}。
  5. 注意:这只会在安装了VS2015且安装了Lightswitch软件包的计算机上进行。原因是VS2015绑定路径包含在SSMS等隔离Shell应用程序中,除非pkgundef文件排除它们。修复程序将包含在即将发布的版本中。

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

答案 1 :(得分:0)

您可以从此处下载最新版本的数据层应用程序框架(包括Microsoft.SqlServer.Dac):https://www.microsoft.com/en-us/download/details.aspx?id=51672

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

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

  1. SQLSysCLRTypes.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746597&clcid=0x409
  2. SQLSysCLRTypes.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746609&clcid=0x409
  3. SQLDOM.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746593&clcid=0x409
  4. SQLDOM.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746605&clcid=0x409