.NET 7 Razor Pages项目System.Text.Json版本冲突问题求助
解决System.Text.Json版本冲突(.NET 7与.NET Framework 4.7.2混合场景)
针对你遇到的版本冲突问题,以下是彻底统一版本的解决步骤:
1. 给.NET Framework 4.7.2项目添加程序集绑定重定向
在.NET Framework项目的app.config或web.config的<runtime>节点下添加绑定重定向,强制所有对System.Text.Json的引用指向7.0.2版本:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.2" newVersion="7.0.0.2" /> </dependentAssembly> </assemblyBinding> </runtime>
注:此处版本号需与7.0.2包对应的程序集版本一致(通常7.0.2 NuGet包对应程序集版本为7.0.0.2)。
2. 清理.NET 7项目的旧依赖引用
- 打开.NET 7项目的
.csproj文件,若存在直接引用Microsoft.NETCore.App.Ref的条目,直接移除——该包是SDK自带的引用程序集,无需手动引入。 - 运行
dotnet list package --include-transitive命令查看项目依赖树,找到引入旧版本System.Text.Json的间接依赖,通过PackageReference的ExcludeAssets属性排除旧版本,或升级对应依赖包至兼容7.0.2的版本。
3. 统一所有项目的System.Text.Json NuGet版本
- 确保.NET Framework 4.7.2项目的NuGet包管理器中,System.Text.Json已明确升级至7.0.2,删除旧版本残留引用。
- 在.NET 7项目中显式引用System.Text.Json 7.0.2包,覆盖SDK默认版本:
<PackageReference Include="System.Text.Json" Version="7.0.2" />
4. 验证冲突是否解决
- 运行
dotnet restore --verbosity detailed,查看输出中System.Text.Json的依赖解析日志,确认所有引用均指向7.0.2版本。 - 在Visual Studio中右键解决方案选择「管理解决方案的NuGet程序包」,检查所有项目的System.Text.Json版本是否统一为7.0.2。
以上操作会强制所有组件使用同一最新版本的System.Text.Json,彻底消除版本冲突警告,同时满足你对7.0.1/7.0.2新功能的需求。
内容的提问来源于stack exchange,提问作者UDS
相关产品推荐
相关产品推荐

