我在Microsofts WHCK 2.0 API上编写了一个PowerShell脚本。我来自perl背景所以在powershell或c#中不太了解。
好吧,我的代码是:
$ObjectModel = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dll")
$DbConnection = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dbconnection.dll")
$Submission = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.submission.dll")
$List = New-Object "System.Collections.Generic.List``1[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]"
当我运行此代码时,会产生此错误:
“New-Object:找不到类型:[System.Collections.Generic.List`1 [Microsoft.Windows.Kits.Hardware.ObjectModel.Target]]:确保加载包含此类型的aseembly。”
我已经使用CurrentDomain.getAssemblies()方法验证了aseemblies的正确加载。 此外,我已经验证“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”类型存在于“Microsoft.Windows.Kits.Hardware.ObjectModel.dll”程序集中,如下:
$ObjectModel.GetTypes() | % {
if($_.FullName -eq "Microsoft.Windows.Kits.Hardware.ObjectModel.Target")
{
$found=1
}
}
我还想提一件事,“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”这个类型/类是一个抽象类。
我搜索了很多,但无法找到摆脱这个错误的正确方法。请建议并帮助克服此错误。
答案 0 :(得分:1)
试试这个:
$List = New-Object 'System.Collections.Generic.List[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]'