NU1107包版本冲突求助:Microsoft.CodeAnalysis系列包版本不一致
解决NU1107 CodeAnalysis版本冲突问题
问题根源
你的项目同时依赖两个版本要求冲突的Microsoft.CodeAnalysis相关组件:
Microsoft.VisualStudio.Web.CodeGeneration.Design 7.0.1需要**>=4.4.0**的Microsoft.CodeAnalysis.CSharp.WorkspacesTelerik.UI.for.AspNet.Core 2022.3.1109强制依赖**=4.0.0**的Microsoft.CodeAnalysis.CSharp.Workspaces
手动指定4.4.0版本后触发Microsoft.CodeAnalysis.Common冲突,是因为项目中可能存在Microsoft.VisualStudio.Web.CodeGeneration.Design 7.0.0(低版本),该版本依赖4.0.0的Common包。
解决方案
1. 统一Web代码生成包版本
打开DACRL.Portal.Admin项目的.csproj文件,确保Microsoft.VisualStudio.Web.CodeGeneration.Design版本统一为7.0.1,避免混合不同版本:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.1" />
2. 显式指定冲突的CodeAnalysis包版本
在.csproj中添加以下包引用,强制所有依赖使用4.4.0版本,覆盖第三方包的间接依赖要求:
<PackageReference Include="Microsoft.CodeAnalysis" Version="4.4.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.4.0" /> <PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.4.0" />
3. 升级Telerik包(推荐)
Telerik.UI.for.AspNet.Core 2022.3.1109为2022年版本,对.NET 7的适配性有限。建议升级到2023.x或更高版本的Telerik包,这类版本通常已适配.NET 7及更高版本的CodeAnalysis组件,从根源上解决版本冲突。
4. 清理NuGet缓存并重新还原
执行以下命令清理本地NuGet缓存,避免旧缓存干扰:
dotnet nuget locals all --clear
随后在解决方案目录下运行还原命令:
dotnet restore
内容的提问来源于stack exchange,提问作者DoomerDGR8
相关产品推荐
相关产品推荐

