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

无法将PowerShell模块发布至PSGallery的问题求助

PowerShell模块发布到PSGallery的问题排查与解决

PowerShell 7下Publish-Module报错:.NET目标框架netcoreapp2.0不支持

问题原因

你的模块项目配置指定了已停止支持的netcoreapp2.0作为目标框架,而Windows 11自带的PowerShell 7基于较新的.NET版本(如.NET 6/7/8),默认环境中没有netcoreapp2.0的SDK或运行时,导致MSBuild无法解析Microsoft.NETCore.App (>=2.0.0)依赖,进而无法生成模块压缩包。

解决步骤

  1. 修改项目目标框架
    打开模块的.csproj文件,将<TargetFramework>节点的值替换为兼容PowerShell 7的版本:
    <!-- 示例:使用.NET 6,适配PowerShell 7.2+ -->
    <TargetFramework>net6.0</TargetFramework>
    <!-- 多目标框架可选 -->
    <!-- <TargetFrameworks>net6.0;net7.0</TargetFrameworks> -->
    
  2. 更新依赖包版本
    在.csproj中把所有依赖的包(包括Microsoft.NETCore.App)更新到适配新目标框架的版本,比如net6.0对应6.0.0及以上版本。
  3. 清理重建模块
    执行以下命令清理旧构建文件并重新生成模块:
    dotnet clean
    dotnet build -c Release
    
  4. 验证模块可用性
    用Test-ModuleManifest检查模块清单,确保模块能在PowerShell 7中正常加载:
    Test-ModuleManifest -Path "C:\Users\Douda\Projects\PSSymantecCloud\Output\PSSymantecCloud\PSSymantecCloud.psd1"
    

PowerShell 5.1下发布报错:连接意外关闭

问题原因

  • PowerShell 5.1默认启用TLS 1.0/1.1,而PSGallery现在强制要求TLS 1.2或更高版本,导致连接被服务器拒绝。
  • 代理或防火墙拦截了HTTPS请求,导致连接中途断开。
  • 旧版本的PowerShellGet模块存在兼容性问题。

解决步骤

  1. 强制启用TLS 1.2
    运行Publish-Module前先执行:
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
  2. 检查网络与代理
    • 用Invoke-WebRequest测试PSGallery连通性:
      Invoke-WebRequest -Uri "https://www.powershellgallery.com"
      
    • 如果环境有代理,确保PowerShell 5.1配置了正确的代理参数,或在命令行添加-Proxy(如支持)。
  3. 更新PowerShellGet模块
    安装最新版PowerShellGet并重启PowerShell:
    Install-Module -Name PowerShellGet -Force -AllowClobber
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:05:27