【问题标题】:DbaTools Error. How to fix 'Could not load file or assembly 'Microsoft.SqlServer.ConnectionInfo' when running Export-DbaInstanceDbaTools 错误。如何在运行 Export-DbaInstance 时修复“无法加载文件或程序集“Microsoft.SqlServer.ConnectionInfo”
【发布时间】:2019-04-10 20:42:03
【问题描述】:

我在跑步

Export-DbaInstance -SqlInstance $sourceServerName -Path $absPathToBackupScriptDir

并得到错误'无法加载文件或程序集'Microsoft.SqlServer.ConnectionInfo'

我尝试为 Visual Studio 2013 和 2017 安装 Microsoft Visual C++ Redistributable

我尝试使用下面的 CMD 将有问题的 DLL(包含在 DbaTools 模块中)添加到 GAC

gacutil.exe /i "C:\Program Files\WindowsPowerShell\Modules\dbatools\bin\smo\Microsoft.SqlServer.ConnectionInfo.dll" 

我尝试使用下面的 Powershell 安装最新版本的 DbaTools(撰写本文时约为 0.9.x)

Invoke-Expression (Invoke-WebRequest -UseBasicParsing https://dbatools.io/in) 

输入的命令和完整的输出错误信息都在下面

Export-DbaInstance -SqlInstance $sourceServerName -Path $absPathToBackupScriptDir

'Could not load file or assembly 'Microsoft.SqlServer.ConnectionInfo' Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 or one of its dependencies. The system cannot find the file specified.'

【问题讨论】:

  • 您是否安装了 Microsoft SQL Server Management Studio 或 SQL Server?
  • @HAL9256,是的,我直接在 SQL 实例所在的主机上运行 cmdlet。它是 SQL Server 2012,程序集版本似乎表明该版本是问题的一部分。此外,该 cmdlet 确实成功生成了多个脚本,但在运行结束时会产生该错误(复制?)。我可以从我的本地计算机对服务器运行 cmdlet,没有问题,但我需要从服务器上的 SQL-Agent 作业运行它。我没有在该主机上安装最新版本的 SSMS,但确实安装了一个版本的 SSMS (2012)

标签: powershell-4.0 windows-server-2012-r2 dbatools


【解决方案1】:

如果我选择不导出复制设置,则不会尝试加载有问题的程序集,并且 cmdlet 会按预期运行。

Export-DbaInstance -SqlInstance $sourceServerName -Path $absPathToBackupScriptDir -Exclude 'ReplicationSettings'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2011-06-03
    • 2018-04-10
    • 1970-01-01
    • 2013-11-26
    • 2010-10-07
    相关资源
    最近更新 更多