1

我正在 Microsoft 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]"

当我运行此代码时,它会产生此错误:

“新对象:找不到类型:[System.Collections.Generic.List`1[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]]:确保已加载包含此类型的组件。”

我已经使用 CurrentDomain.getAssemblies() 方法验证了组件是否正确加载。我还验证了“Microsoft.Windows.Kits.Hardware.ObjectModel.dll”程序集中存在“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”类型,如下所示:

$ObjectModel.GetTypes() | % { 
      if($_.FullName -eq "Microsoft.Windows.Kits.Hardware.ObjectModel.Target")
      { 
          $found=1
      }
}

还有一件事我想提一下,“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”这个类型/类是一个抽象类。

我进行了很多搜索,但无法找到摆脱此错误的正确方法。请提出建议并帮助克服此错误。

4

1 回答 1

1

尝试这个:

$List = New-Object 'System.Collections.Generic.List[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]'
于 2012-11-09T09:48:35.487 回答