0

我是 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定义了给定的类型?例如,我如何找到包含的 DLL 的完整路径System.Data.SqlClient.SqlCredential(我System.Data.SqlClient在我的 Windows 8 机器上的 GAC 中看不到 a,但它在那里工作......)?

谢谢!

4

2 回答 2

0

你是说机器安装了.NET 2.0-4.0。但是,该类SqlCredential已在 .NET 4.5 中引入:

http://blogs.msdn.com/b/adonet/archive/2012/03/09/safer-passwords-with-sqlcredential.aspx

也许这就是问题所在?也许Win8已经安装了?

于 2013-06-09T20:27:00.720 回答
0

我相信你可以下载.Net 4.5。我相信这会解决你的问题。
在我目前的工作中,我无法升级 .Net,因为我正在编写在服务器上远程运行的 Powershell 脚本,其中一些可能没有最新版本的 .Net。例如,我不能使用 System.Data.sqlclient.SqlQuery,因为即使加载了大部分 System.Data.SqlClient 程序集,System.Data.sqlclient.SqlQuery 的类也不是该程序集的一部分。太糟糕了,因为许多使用 DataAdapter 的示例脚本都引用了 .SQLQuery 类,该类位于 .Net 4.5 中。

于 2017-05-16T19:00:07.583 回答