我是PowerShell的新手,我正在尝试执行SQL查询的简单脚本。它在我的Windows 8机器(PS 3.0)上工作正常,但在客户端机器上却没有(2008R2,PS 2.0) - 我在这一行上得到例外:
$credentials = New-Object System.Data.SqlClient.SqlCredential -argumentlist $user, $password
New-Object : Cannot find type [System.Data.SqlClient.SqlCredential]: make sure the assembly containing this type is loaded.
两台机器都安装了.NET 2.0-4.0。
有关如何调试和修复此问题的任何建议都将不胜感激。
另外,我怎么知道哪个汇编文件/ dll定义了给定的类型?例如,如何找到包含System.Data.SqlClient.SqlCredential
的DLL的完整路径(我在Windows 8计算机上的GAC中看不到System.Data.SqlClient
,但它在那里工作...)?< / p>
谢谢!
答案 0 :(得分:0)
你说机器安装了.NET 2.0-4.0。但是,在.NET 4.5中引入了类SqlCredential
:
http://blogs.msdn.com/b/adonet/archive/2012/03/09/safer-passwords-with-sqlcredential.aspx
也许这就是问题呢?也许Win8安装了它?
答案 1 :(得分:0)
我相信你可以下载.Net 4.5。我相信这会解决你的问题 在我目前的工作中,我无法升级.Net,因为我正在编写在服务器上远程运行的Powershell脚本,其中一些可能没有最新版本的.Net。例如,我不能使用System.Data.sqlclient.SqlQuery,因为即使加载了大部分System.Data.SqlClient程序集,System.Data.sqlclient.SqlQuery的类也不是该程序集的一部分。太糟糕了,因为许多使用DataAdapter的示例脚本引用了.NetQuery类,它位于.Net 4.5中。