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

VS2017下VSIX无法加载System.Numerics.Vectors程序集问题

解决Visual Studio 2017中VSIX扩展加载System.Numerics.Vectors失败的问题

问题现象

开发的VSIX扩展在Visual Studio 2017中运行失败,抛出异常:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.4.0

已确认以下信息:

  • 项目csproj中已添加该程序集的包引用:
    <PackageReference Include="System.Numerics.Vectors">
      <Version>4.5.0</Version>
    </PackageReference>
    
  • 扩展目录中确实存在System.Numerics.Vectors, Version=4.1.4.0文件,路径为:
    C:\Users\IEUser\AppData\Local\Microsoft\VisualStudio\15.0_90a627f6\Extensions\j5lca0pj.xmg
    
  • 通过fuslogvw查看绑定日志,发现CLR并未在扩展目录中查找该程序集,但其他正常加载的包会在此目录查找;该程序集是System.Memory的依赖项,并非VSIX直接引用,且devenv.exe.config中无相关绑定重定向配置。

解决步骤

通过以下操作解决了问题:

  1. 移除代码中的以下绑定重定向特性:
    [assembly: Microsoft.VisualStudio.Shell.ProvideBindingRedirection(AssemblyName = "System.Memory", OldVersionLowerBound = "1.0.0.0", OldVersionUpperBound = "4.0.1.1", NewVersion = "4.0.1.2")]
    [assembly: Microsoft.VisualStudio.Shell.ProvideBindingRedirection(AssemblyName = "System.Runtime.CompilerServices.Unsafe", OldVersionLowerBound = "1.0.0.0", OldVersionUpperBound = "4.0.4.9", NewVersion = "5.0.0.0")]
    [assembly: Microsoft.VisualStudio.Shell.ProvideBindingRedirection(AssemblyName = "System.Numerics.Vectors", OldVersionLowerBound = "1.0.0.0", OldVersionUpperBound = "4.1.3.0", NewVersion = "4.1.4.0")]
    
  2. 将System.Runtime.CompilerServices.Unsafe包版本从5.x降级到4.5版本。

排查发现

移除System.Numerics.Vectors的绑定重定向后,报错变为无法找到System.Memory,由此可见自定义的绑定重定向会干扰CLR对程序集的查找逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:02:28