使用 Sql Server Management Studio 2016 导入 bacpac 时出错 - 无法加载文件或程序集 Microsoft.SqlServer.Dac
Error importing bacpac using Sql Server Management Studio 2016 - could not load file or assembly Microsoft.SqlServer.Dac
我从 Azure 门户创建了 .bacpac 文件并将其保存到桌面。然后在 Management Studio 2016 Candidate 中右键单击“数据库”并选择“导入数据层应用程序”,然后选择我的目标文件然后下一步...当它进行处理时,我收到错误消息:
无法加载文件或程序集 'Microsoft.SqlServer.Dac, Version = 13.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' 或其依赖项之一。您找不到指定的文件。 (Microsoft.SqlServer.Management.Dac.DacWizard)
我正在搜索 google,但我找不到任何可行的解决方案。你能帮忙吗?
还要检查这张关于配置的图片:
您可以从此处下载最新版本的数据层应用程序框架(包括 Microsoft.SqlServer.Dac):https://www.microsoft.com/en-us/download/details.aspx?id=51672
请注意,您还应根据下载页面的系统要求部分安装依赖项 SqlDom 和 SqlSysClrTypes:
依赖项
Microsoft SQL 服务器数据层应用程序框架需要 Microsoft SQL 服务器系统 CLR 类型和 Microsoft SQL 服务器 Transact-SQL ScriptDom(SQLSysCLRTypes.msi 和 SQLDOM.msi) 两者都在下面可用。如果您使用的是 x64 计算机,则需要同时安装上述 MSI 的 x64 和 x86 版本。
- SQLSysCLRTypes.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746597&clcid=0x409
- SQLSysCLRTypes.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746609&clcid=0x409
- SQLDOM.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746593&clcid=0x409
- SQLDOM.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746605&clcid=0x409
这是由于 SSMS 中的一个错误,应该在未来的版本中修复。问题是,如果您安装了适用于 VS2015 的 Lightswitch,则 SSMS 用于查找 DLL 的绑定路径将包括对 130 版本之前 DacFx DLL 的早期 110 版本的引用。这会导致上述错误,因为默认情况下 Visual Studio returns 第一个匹配的 DLL。
解法:
- 在文本文件查看器中打开 "C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\ManagementStudio\ssms.pkgundef"。您需要 运行 此查看器作为管理员才能对其进行编辑
添加以下行以确保以后忽略110绑定路径并保存文件:
[$RootKey$\BindingPaths\{272EA915-68EE-4AFD-99A4-1286126565EC}]
接下来我们需要将它从注册表中删除,因为它已经添加过一次。打开 Regedit.exe 并导航到 "HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio.0_Config\BindingPaths"
- 从该键下删除文件夹 {272EA915-68EE-4AFD-99A4-1286126565EC}。
注意:这只会发生在安装了VS2015并且安装了Lightswitch包的机器上。原因是 VS2015 绑定路径包含在隔离的 Shell 应用程序(如 SSMS)中,除非 pkgundef 文件将它们排除在外。即将发布的版本中将包含修复程序。
披露: 我在 SQL 服务器工具团队工作。
我从 Azure 门户创建了 .bacpac 文件并将其保存到桌面。然后在 Management Studio 2016 Candidate 中右键单击“数据库”并选择“导入数据层应用程序”,然后选择我的目标文件然后下一步...当它进行处理时,我收到错误消息:
无法加载文件或程序集 'Microsoft.SqlServer.Dac, Version = 13.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' 或其依赖项之一。您找不到指定的文件。 (Microsoft.SqlServer.Management.Dac.DacWizard)
我正在搜索 google,但我找不到任何可行的解决方案。你能帮忙吗?
还要检查这张关于配置的图片:
您可以从此处下载最新版本的数据层应用程序框架(包括 Microsoft.SqlServer.Dac):https://www.microsoft.com/en-us/download/details.aspx?id=51672
请注意,您还应根据下载页面的系统要求部分安装依赖项 SqlDom 和 SqlSysClrTypes:
依赖项 Microsoft SQL 服务器数据层应用程序框架需要 Microsoft SQL 服务器系统 CLR 类型和 Microsoft SQL 服务器 Transact-SQL ScriptDom(SQLSysCLRTypes.msi 和 SQLDOM.msi) 两者都在下面可用。如果您使用的是 x64 计算机,则需要同时安装上述 MSI 的 x64 和 x86 版本。
- SQLSysCLRTypes.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746597&clcid=0x409
- SQLSysCLRTypes.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746609&clcid=0x409
- SQLDOM.msi x64 - http://go.microsoft.com/fwlink/?LinkID=746593&clcid=0x409
- SQLDOM.msi x86 - http://go.microsoft.com/fwlink/?LinkID=746605&clcid=0x409
这是由于 SSMS 中的一个错误,应该在未来的版本中修复。问题是,如果您安装了适用于 VS2015 的 Lightswitch,则 SSMS 用于查找 DLL 的绑定路径将包括对 130 版本之前 DacFx DLL 的早期 110 版本的引用。这会导致上述错误,因为默认情况下 Visual Studio returns 第一个匹配的 DLL。
解法:
- 在文本文件查看器中打开 "C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\ManagementStudio\ssms.pkgundef"。您需要 运行 此查看器作为管理员才能对其进行编辑
添加以下行以确保以后忽略110绑定路径并保存文件:
[$RootKey$\BindingPaths\{272EA915-68EE-4AFD-99A4-1286126565EC}]
接下来我们需要将它从注册表中删除,因为它已经添加过一次。打开 Regedit.exe 并导航到 "HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio.0_Config\BindingPaths"
- 从该键下删除文件夹 {272EA915-68EE-4AFD-99A4-1286126565EC}。
注意:这只会发生在安装了VS2015并且安装了Lightswitch包的机器上。原因是 VS2015 绑定路径包含在隔离的 Shell 应用程序(如 SSMS)中,除非 pkgundef 文件将它们排除在外。即将发布的版本中将包含修复程序。
披露: 我在 SQL 服务器工具团队工作。