PowerShell无法在类中加载程序集

时间:2017-11-03 13:56:48

标签: powershell

我有以下代码:

using namespace System.Xml.Linq
using assembly System.Xml.Linq

class error {
    <#
        .PARAMETER type
        The type of the error.
    #>
    [string] $type

    <#
        .PARAMETER message
        The error message.
    #>
    [string] $message

    error() {}

    [XElement] ToXElement() {

        $el = New-Object XElement([XName] "error")
        $attrType = New-Object XAttribute([XName] "type"), $this.type
        $el.Add($attrType)
        $elDesc = New-Object XElement([XName] "desc"), $this.message
        $el.Add($elDesc)

        return $el
    }
}

当我尝试使用using module error.psm1导入模块时,PowerShell控制台会说Unable to find type [XElement][XName]。我已经尝试了绝对和相对的类名,但仍无济于事。

在运行使用模块的脚本之前,有没有办法using模块而不必运行Add-Type

环境$PSVersionTable

PS D:\ DiscoveryRunner&gt; $ PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14409.1012
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14409.1012
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

注意:我发现的一种解决方法是在PowerShell配置文件(see this docs for more information)中添加Add-Type语句,但它是一个难看的修复程序,如果可能的话我想避免使用。

0 个答案:

没有答案