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



我正在运行下面的Powershell

Export-DbaInstance -SqlInstance xxxxxxxxxxxx -ExcludePassword -Exclude databases -Path \xxxxxxxxxx

但是,我收到错误

'警告: [14:34:02][导出-DbaRepServer设置] 无法加载复制库 |无法加载文件或"Microsoft.SqlServer.Replication.dll"或其依赖项之一。找不到指定的模块。

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

服务器是Windows 2016,SQL是2019标准。 dbatools smo 文件夹中Microsoft.SqlServer.Replication.dll的文件版本为 2017.140.1000.169,产品版本为 14.0.1000.169。C:Program FilesMicrosoft SQL Server150SDKAssemblies中的版本分别为 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 上的问题 6897 和 6548。

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

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

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

相关内容

  • 没有找到相关文章

最新更新