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

使用Source Generator时遇到Microsoft.CodeAnalysis.Common的NuGet版本冲突问题

解决.NET 6 MVC与类库的Microsoft.CodeAnalysis版本冲突问题

核心原因

你的MVC项目依赖的Microsoft.VisualStudio.Web.CodeGeneration.Design(脚手架工具)锁死了Microsoft.CodeAnalysis.Common的4.0.0版本,而类库引用的Microsoft.CodeAnalysis.CSharp.Workspaces要求4.3.0版本,两者的依赖链冲突导致包还原失败。

可行解决方案

方案1:降级类库的CodeAnalysis包版本到4.0.0

Source Generator在4.0.0版本的CodeAnalysis包中完全可用,且能和脚手架工具的依赖兼容:

  • 打开类库的项目文件(.csproj),修改以下包的版本:
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="4.0.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.0.0" />
  • 保存后执行dotnet restore,再重建项目。

方案2:隔离脚手架工具的依赖(保留4.3.0版本)

如果必须使用4.3.0版本的CodeAnalysis包,可以将脚手架工具的依赖设为私有资产,避免其影响主项目的包版本:

  1. 打开MVC项目的.csproj文件,修改脚手架工具的引用:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.7" PrivateAssets="all" />
  1. 在MVC项目中直接添加4.3.0版本的Microsoft.CodeAnalysis.Common引用:
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.3.0" />
  1. 执行以下命令清理缓存并还原:
dotnet nuget locals all --clear
dotnet restore

方案3:临时移除脚手架工具(若不需要代码生成)

如果近期不需要使用脚手架生成代码,可以暂时移除MVC项目中的Microsoft.VisualStudio.Web.CodeGeneration.Design包,直接安装4.3.0版本的CodeAnalysis相关包,待需要脚手架时再重新安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:45:45