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

修改PowerShell代码后仍执行旧版本的问题求助

PowerShell模块类修改后不生效的问题解决

问题本质

通过Using module导入的自定义类会被加载为当前PowerShell会话的.NET类型,而.NET类型一旦加载到会话的AppDomain中,就无法在同一会话内卸载或重新定义。这就是修改TestRunner.psm1的Execute方法后,执行脚本仍输出旧内容的核心原因——旧的类类型依然驻留在会话内存中,新的修改无法覆盖。

解决办法

  1. 最可靠的方式:使用全新会话执行
    每次修改类文件后,打开新的PowerShell窗口,或在VS Code中新建终端运行脚本。彻底隔离旧会话的缓存,确保加载最新的类定义。

  2. 尝试手动清理会话(仅部分场景有效)
    若不想重启会话,可尝试先移除相关模块,但注意:已加载的类类型无法彻底从会话中清除,后续可能仍存在冲突:

    # 移除相关模块
    Remove-Module TestRunner, Logger -Force -ErrorAction SilentlyContinue
    # 重新运行脚本
    .\StartTestRunner.ps1
    
  3. 优化错误信息显示

    • 启用详细错误视图,获取文件路径和行号:
      $ErrorView = 'DetailedView'
      
    • 开启严格模式,捕获更多潜在错误:
      Set-StrictMode -Version Latest
      

内容的提问来源于stack exchange,提问作者edwarddeath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:20:02