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

PowerShell Desktop运行MimeKit时报System.Buffers 4.0.2.0加载失败怎么办

问题根因

你碰到的是PowerShell Desktop(基于.NET Framework)的经典程序集版本不匹配问题:

  • MimeKit 2.15编译时引用的System.Buffers程序集版本为4.0.2.0,但NuGet上发布的System.Buffers 4.5.1包对应的实际程序集版本为4.0.3.0,版本号不匹配导致.NET Framework默认加载逻辑找不到对应文件
  • VSCode中默认使用的PowerShell 7+基于.NET Core/.NET 5+,运行时会自动兼容程序集版本差异,同时运行时自带System.Buffers实现,因此不需要手动导入也可以正常运行
解决方案

方案1:在脚本内添加程序集绑定重定向逻辑(推荐,无全局修改)

在你的Add-Type代码前添加以下代码,当运行时查找4.0.2.0版本的System.Buffers时,直接返回你本地已有的4.5.1版本程序集:

# 注册程序集解析事件,处理System.Buffers版本不匹配问题
$OnAssemblyResolve = [ResolveEventHandler] {
    param($sender, $e)
    # 匹配要加载的System.Buffers 4.0.2.0请求
    if ($e.Name.StartsWith("System.Buffers, Version=4.0.2.0")) {
        # 加载你本地的4.5.1版本程序集
        return [System.Reflection.Assembly]::LoadFrom("C:\Program Files\PackageManagement\Nuget\Packages\system.buffers\4.5.1\lib\netstandard2.0\System.Buffers.dll")
    }
    return $null
}
[AppDomain]::CurrentDomain.add_AssemblyResolve($OnAssemblyResolve)

# 原来的Add-Type代码,可删掉手动加载System.Buffers的行,事件会自动处理
Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\mimekit\2.15.0\lib\netstandard2.0\MimeKit.dll"
Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\mailkit\2.15.0\lib\netstandard2.0\MailKit.dll"

# 脚本执行完后可选择移除事件,避免影响后续执行
# [AppDomain]::CurrentDomain.remove_AssemblyResolve($OnAssemblyResolve)

方案2:修改PowerShell Desktop全局配置文件(不推荐,影响所有脚本)

找到PowerShell Desktop的配置文件,路径通常为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.config,在<configuration> -> <runtime>节点下添加绑定重定向规则:

<dependentAssembly>
  <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>

方案3:切换到PowerShell 7+运行

如果没有必须使用PowerShell Desktop的强制要求,直接用PowerShell 7+运行脚本,不需要任何修改即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:15:01