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

.NET 4.8项目执行Add-BindingRedirect报错:程序集权限集不一致

解决Add-BindingRedirect报错“Loading this assembly would produce a different grant set from other instances”的方案

针对.NET 4.8网站项目(含.publishproj)执行Add-BindingRedirect时出现的0x80131401错误,可尝试以下步骤解决:

  • 手动统一程序集版本与绑定重定向
    收集所有类库和网站项目的程序集引用信息,确保同名称程序集的版本、公钥令牌完全一致。手动编辑web.config和所有类库的app.config,将<assemblyBinding>节点下的重定向规则统一,示例:

    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
    </dependentAssembly>
    
  • 彻底清理项目缓存与输出

    1. 删除所有项目的bin、obj文件夹,以及网站项目的发布输出目录
    2. 删除解决方案根目录的packages文件夹,执行Restore-NuGetPackages重新还原包
    3. 删除VS组件缓存:清空%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache下的所有文件
  • 检查.publishproj配置
    打开.publishproj文件,确认以下配置:

    • 所有程序集引用版本与主项目一致
    • PropertyGroup中已开启自动生成绑定重定向:
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
      
  • 用MSBuild命令行生成重定向
    打开对应版本的VS开发者命令提示符,进入解决方案根目录,执行:

    msbuild /t:GenerateBindingRedirects /p:Configuration=Release
    

    命令执行后,将生成的重定向规则手动复制到web.config中。

  • 排查程序集权限与路径

    • 确认所有项目引用的程序集“复制本地”属性设为true,共享二进制时确保所有项目指向同一物理路径的程序集
    • 检查全局程序集缓存(GAC)是否存在冲突版本的程序集,如有则暂时移除或在配置中明确指定版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:05:16