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

如何解决NuGet传递引用版本冲突并强制使用8.3.0新版本?

解决MSB3277版本冲突并强制使用8.3.0版本

1. 给项目5添加显式包引用

项目5是SDK风格(PackageReference),直接在它的.csproj文件里显式指定这两个包的8.3.0版本,优先级会高于传递引用的低版本:

<ItemGroup>
  <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.3.0" />
  <PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.3.0" />
</ItemGroup>

2. 配置解决方案级版本统一

如果要让所有PackageReference项目(1-3、5)都强制用8.3.0,在解决方案根目录创建Directory.Packages.props文件,内容如下:

<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="8.3.0" />
    <PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.3.0" />
  </ItemGroup>
</Project>

SDK风格项目会自动读取这个文件,统一包版本。

3. 修复项目4的版本绑定重定向

项目4是packages.config的WebForms项目,在它的web.config里补全正确的绑定重定向(之前没生效大概率是版本范围没覆盖6.35.0):

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.3.0" newVersion="8.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.IdentityModel.JsonWebTokens" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.3.0" newVersion="8.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

4. 清理重建确保生效

  • 删除所有项目的bin、obj目录
  • 执行NuGet包还原
  • 清理并重新生成整个解决方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:02:11