繁体   English   中英

DBATools 错误:“无法加载文件或程序集“Microsoft.SqlServer.Replication.dll 或其依赖项之一””

[英]DBATools Error: 'could not load file or assembly 'Microsoft.SqlServer.Replication.dll or one of its dependencies''

我正在运行下面的 Powershell

Export-DbaInstance -SqlInstance xxxxxx\xxxxxx -ExcludePassword -Exclude databases -Path \\xxxxx\xxxxx

但是,我收到错误

'警告:[14:34:02][Export-DbaRepServerSetting] 无法加载复制库 | 无法加载文件或“Microsoft.SqlServer.Replication.dll”或其依赖项之一。 指定的模块无法找到。'

它成功导出了除实例复制之外的所有内容。 我可以使用-Exclude 'ReplicationSettings'并且Export-DBAInstance成功运行。 我还可以在安装了任何其他版本的 SQL 的 Windows 2016 服务器上成功执行原始脚本。

服务器是 Windows 2016,SQL 是 2019 Standard。 dbatools smo文件夹中Microsoft.SqlServer.Replication.dll的文件版本为2017.140.1000.169,产品版本为14.0.1000.169。 C:\\Program Files\\Microsoft SQL Server\\150\\SDK\\Assemblies中的版本分别为 2019.150.2000.5 和 15.0.2000.5。

我还尝试执行Invoke-Expression (Invoke-WebRequest -UseBasicParsing https://dbatools.io/in)来下载最新版本的 dbatools,解锁文件并导入 dbatools 模块。 我还尝试将Microsoft.SqlServer.Replication.dll从 SQL 2016\\2012 和 2017 实例复制到上面的程序集文件夹中。

从 1.0.161 开始, Dbatools不再支持导致上述命令中出现错误的复制函数。 命令所依赖的Microsoft.SqlServer.Rmo.dll通常是通过 Sql Server Management Studio (SSMS) 17 安装的,并且隐含地假设大多数用户会从他们使用 SSMS 的同一个盒子中使用 Dbatools。 SSMS 18 更改了对这些 dll 的要求,它们无法加载和使用。

有关更多详细信息,请参阅 github 上的问题68976548

您可以尝试手动加载程序集,以检查实际错误:

PS> $dbaToolsPath = "xxxx"   # your full path to the dbaTools
PS> $Error.Clear()
PS> Add-Type -Path "$dbaToolsPath\bin\smo\Microsoft.SqlServer.Replication.dll" -ErrorAction Stop
PS> ($Error | Select-Object -Last 1).Exception.InnerException | Select-Object *

并为Microsoft.SqlServer.Rmo.dll程序集重复此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM