You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确导入含依赖关系多类定义的PowerShell模块

PowerShell模块多依赖类的简洁导出方案

PowerShell模块中定义的类默认仅在模块内部作用域可见,这就是你直接导入模块后全局无法识别Directory类的原因。下面提供两种简洁的解决办法:

方法1:在根模块中显式导出类

修改TestModule1.psm1,在引入依赖的语句后添加导出命令,明确指定要暴露给全局的类:

using module .\Directory.psm1
Export-ModuleMember -Type Class -Name File, Directory

修改完成后,重新执行导入命令:

Import-Module .\TestModule1.psd1 -Force

此时就能直接在全局会话中调用类:

[Directory]::new("G:\Skriptkiste")

方法2:通过模块清单配置导出类

更规范的方式是直接在模块清单TestModule1.psd1中配置要导出的类,添加ClassesToExport键值对:

@{
  ModuleVersion = "0.0.1"
  RootModule = "TestModule1.psm1"
  ClassesToExport = @('File', 'Directory')
}

重新导入模块后,全局会话即可直接访问File和Directory类,无需额外切换作用域。

补充说明

之前通过& $m1 { [Directory]::new(...) }能正常执行,是因为这段代码是在模块的私有作用域内运行的,自然能访问模块内部的类。而显式导出类后,模块会将这些类暴露到全局会话,无需再借助作用域切换的方式调用。

内容的提问来源于stack exchange,提问作者Peter M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:08:15