【问题标题】:Powshell Binary ModulePowershell 二进制模块
【发布时间】:2013-06-14 23:18:53
【问题描述】:

我有一个带有派生自 cmdlet 的基类的 powershell 模块,并且我的所有 cmdlet 都派生自该模块。 Import-module 看不到我从 cmdlet 间接派生的任何类。我是否需要添加清单来支持这种结构。

【问题讨论】:

  • 请出示一些代码

标签: c# powershell powershell-module


【解决方案1】:

可能是以下两个问题之一:

  • 类不是public
  • 类没有用[CmdletAttribute]装饰

这是一个最小的、正常运行的 cmdlet:

[Cmdlet(Verb = VerbsCommon.Get, Noun = "Answer")]
public class GetAnswerCommand : PSCmdlet {
    public override void EndProcessing() {
        WriteObject(42);
    }
}

import-module-verbose 结合使用可查看有关可见内容的信息。对于二进制模块,您不需要清单 (psd1)。

【讨论】:

  • 派生类的构造函数不是公开的。
【解决方案2】:

您是否将模块放在$env:PSModulePath 中?

Import-Module 只会看到放置在上述路径的模块。或者,您可以将模块的路径添加到$env:PSModulePath

【讨论】:

  • 或者给出 Import-Module 的完整路径
  • 哦,是的。这是另一种选择。
猜你喜欢
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
  • 2018-02-21
  • 2023-03-24
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多