powershell - ImportPSModulesFromPath 不会向 Modules 集合添加任何内容
问题描述
我有一个 Powershell 模块,需要将其加载到运行空间中以供不同线程使用。我知道定义 SessionState 允许我加载模块,然后运行空间可以访问:
$SessionState = [System.Management.Automation.Runspaces.InitialSessionState]::Create()
$SessionState.ImportPSModulesFromPath("$filepath\Validation Library.psd1")
$runspacePool = [runspacefactory]::CreateRunspacePool($SessionState)
问题是我似乎ImportPSModulesFromPath
什么也做不了——它没有返回任何错误,但$SessionState.Modules
集合总是空的,我的运行空间不断返回错误,说它找不到模块中的函数,即使它们在 psd1 中正确定义,如果我使用Import-Module
.
psd1 文件包含指向同一文件夹中的 psm1 文件的模块定义(直接指向 psm1 时我得到相同的行为)
解决方案
经过大量搜索和测试,我无法确定脚本有什么问题 - 直到我关闭并重新打开我的 Powershell 会话。
尽管我一直在小心处理和删除我认为正在使用的变量,但我一直在反复运行具有相同变量的相同脚本,因此不正确的内容被存储到我的一个变量中,导致模块加载失败.
在新会话中运行相同的脚本表明模块已成功加载。
推荐阅读
- react-native - React-Native 如何从子组件更新父状态变量
- datatables - 如何在使用数据表时从 Ajax 调用中修复 403 Forbidden
- angular - 如何从根导航到子路由?
- python - 在与 Jupyter Notebook 不同的环境中运行 python 脚本
- javascript - 为什么我的带有 switch(true) 和 Array.concat() 的代码不能正常工作
- python - 在 QML 的模型-视图-委托系统中处理复杂的对象树?
- mysql - 将这些 MySQL 查询和 SUM 数据与一个查询组合
- python - 如何从 Python 中的列(Seller_ID、Country、Month、Sales)表中获取每个国家/地区的销售额排名前 10 位的卖家
- angular - 错误:无法匹配任何路由。URL 段:“登录”
- jquery - 运行 xampp 失败