2016-03-20 30 views
-1

我编写了一个PowerShell脚本,该脚本可以使用安全连接字符串连接到SQL Server。我已经在我的本地PC上测试过了,它完美地工作。但是,一旦我跑在服务器这个脚本,它给了我下面的错误:[System.Data.SqlClient.SqlCredential]:确保包含此类型的程序集已加载

Cannot find type [System.Data.SqlClient.SqlCredential]: make sure the assembly containing this type is loaded.

两款机器(本地和服务器)具有.Net框架4.5安装。两者都连接到相同的SQL Server。两者都是PowerShell版本2.0。本地机器是Window 7,而服务器是Window Server 2008 R2。

在脚本中,我已经加入了Assembly。

[System.Reflection.Assembly]::Load("Microsoft.SqlServer.Smo,Version=11.0.0.0, Culture=Neutral,PublicKeyToken=89845dcd8080cc91") 
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.SqlEnum,Version=11.0.0.0, Culture=Neutral,PublicKeyToken=89845dcd8080cc91") 
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.ConnectionInfo,Version=11.0.0.0, Culture=Neutral,PublicKeyToken=89845dcd8080cc91") 
+1

'SqlCredential'类在'System.Data'命名空间中,而不在'Microsoft.SqlServer'命名空间中。我没有看到你加载该程序集('[Reflection.Assembly] :: LoadWithPartialName('System.Data')')。此外,我们如何从您发布的小片段中重现您的问题?请使您的示例代码[最小,完整和可验证](http://stackoverflow.com/help/mcve)。 –

回答

0

服务器是否与工作站具有相同的.Net版本?是包含在.Net框架中的程序集,还是需要由管理包或其他安装程序安装。

你的代码不是本地的PowerShell代码,你不能期望它能在任何地方工作。看来您正在加载一个未安装在服务器上但安装在工作站上的库。

相关问题