2016-03-20 25 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代碼,你不能期望它能在任何地方工作。看來您正在加載一個未安裝在服務器上但安裝在工作站上的庫。

相關問題