Visual Studio构建报错:项目中不存在目标‘ResolveCodeAnalysisRuleSet’
解决“项目中不存在目标‘ResolveCodeAnalysisRuleSet’”构建错误
听起来你在移除StyleCop的过程中踩了个棘手的坑——虽然替换了Microsoft.CSharp.Core.targets文件,但残留的配置还在搞事情。咱们一步步来排查解决:
1. 检查项目文件中的StyleCop残留引用
问题出在CDRCallMonitor项目,先右键项目→卸载项目→编辑.csproj文件,仔细查找以下内容:
- 任何包含
StyleCop的<Import>语句,比如<Import Project="$(StyleCopTargets)" /> - 自定义的
<Target>或者<PropertyGroup>里提到ResolveCodeAnalysisRuleSet的配置 - 残留的Code Analysis相关属性,比如
<CodeAnalysisRuleSet>指向了StyleCop相关的规则集
找到后直接删除这些内容,保存后重新加载项目。
2. 重置项目的Code Analysis配置
如果项目文件里没找到明显残留,打开CDRCallMonitor的项目属性:
- 切换到代码分析标签页
- 先选择禁用代码分析,保存设置
- 再重新启用代码分析,选择默认的规则集(比如
MinimumRecommendedRules.ruleset) - 点击应用并确定,然后尝试重新构建
3. 排查全局MSBuild配置残留
有时候StyleCop会修改全局MSBuild配置,除了你替换的CSharp.Core.targets,还要检查这些位置:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Microsoft.Common.targets- 用户目录下的自定义配置:
%USERPROFILE%\AppData\Local\Microsoft\MSBuild\15.0\Microsoft.Common.targets.user - 看看这些文件里有没有引用
ResolveCodeAnalysisRuleSet或者StyleCop相关的内容,如有则删除(建议先备份原文件)
4. 清理缓存并重启Visual Studio
缓存有时候会导致旧配置残留:
- 清理CDRCallMonitor项目的
bin和obj文件夹 - 关闭Visual Studio,删除
%LOCALAPPDATA%\Microsoft\MSBuild\v15.0下的缓存文件 - 重启VS后执行清理解决方案→重新生成解决方案
5. 修复Visual Studio安装
如果以上步骤都没用,可能是替换文件导致VS组件完整性受损:
- 打开Visual Studio Installer,找到VS 2017 Enterprise
- 点击修改→修复,让安装程序重新修复所有相关组件(包括Roslyn和Code Analysis工具)
为什么替换CSharp.Core.targets没用?
这个错误的根源不是CSharp.Core.targets本身有问题,而是你的项目或者全局MSBuild配置里,有代码在尝试调用ResolveCodeAnalysisRuleSet这个目标——而这个目标通常是StyleCop或者自定义Code Analysis配置添加的,移除StyleCop后这个目标就不存在了,所以才会报错。替换系统文件只是还原了基础配置,但残留的调用逻辑还在项目或全局设置里。
内容的提问来源于stack exchange,提问作者Tbooty
相关产品推荐
相关产品推荐

