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

VS Code PowerShell扩展运行自定义.NET Cmdlet报错的解决咨询

解决VS Code PowerShell扩展中自定义Cmdlet运行错误的方案

问题说明

我们基于.NET开发了一款Cmdlet,将其导入脚本后,在VS Code的PowerShell扩展中运行时出现以下错误:

"Method 'AsPages' in type 'FuncAsyncPageable`1' from assembly 'Azure.Data.AppConfiguration, Version=1.2.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8' does not have an implementation."

但在标准pwsh会话中运行相同脚本却能正常执行。此外,调用Add-Platform -Street "US" -GlobalCustomerCode "CUST1" -Key "CompanyCode" -Value "CUST1"的预期返回JSON格式如下:

{"Id":135,"Street":"US","Environment":null,"GlobalCustomerCode":"CUST1","LocalCustomerCode":null,"Prefix":null,"Key":"CompanyCode","Value":"CUST1","LastUpdate":"2023-04-27T13:58:09.7374123Z"}

解决步骤

  • 对齐VS Code与标准会话的PowerShell版本
    分别在VS Code的PowerShell终端和标准pwsh会话中执行$PSVersionTable.PSVersion,对比两者版本。若不一致,在VS Code设置中搜索PowerShell: Default Shell,选择和标准会话相同的pwsh版本,重启VS Code后测试。

  • 排查并解决程序集版本冲突
    错误源于Azure.Data.AppConfiguration 1.2.0.0版本的方法实现缺失,大概率是VS Code环境加载了不兼容的程序集版本:

    1. 在标准pwsh中执行Get-Module -ListAvailable Azure.Data.AppConfiguration,记录已安装的兼容版本;
    2. 在VS Code终端执行相同命令,对比版本差异;
    3. 若VS Code中加载了旧版本,在导入模块时指定明确版本,比如Import-Module Azure.Data.AppConfiguration -RequiredVersion <兼容版本号>;
    4. 同时更新自定义Cmdlet项目中的NuGet包,将Azure.Data.AppConfiguration升级到稳定兼容版本(如1.3.0及以上),重新编译模块。
  • 清理VS Code的PowerShell环境缓存

    1. 关闭VS Code,删除对应系统下的Azure模块缓存目录:
      • Windows:%USERPROFILE%\AppData\Local\Microsoft\PowerShell\7\Modules(pwsh 7)或%USERPROFILE%\Documents\WindowsPowerShell\Modules(Windows PowerShell);
      • macOS/Linux:~/.local/share/powershell/Modules;
    2. 重新打开VS Code,重新导入模块测试。
  • 配置调试环境以支持Cmdlet调试
    要在VS Code中调试自定义Cmdlet,需完成以下配置:

    1. 确保安装最新版的PowerShell扩展;
    2. 在脚本所在目录创建launch.json配置文件,示例如下:
      {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "PowerShell: 启动脚本",
                  "type": "PowerShell",
                  "request": "launch",
                  "script": "${file}",
                  "args": [],
                  "cwd": "${fileDirname}"
              }
          ]
      }
      
    3. 将自定义Cmdlet的编译输出路径添加到VS Code终端的$env:PSModulePath中,确保模块能被正确加载。
  • 验证模块加载过程
    在VS Code终端执行Import-Module <你的自定义模块名> -Force -Verbose,查看加载日志,确认是否有程序集加载失败或版本冲突的提示,根据提示调整依赖项。

内容的提问来源于stack exchange,提问作者Eric F.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:38:37