Visual Studio WPF项目代码度量计算失败问题求助
问题场景
在非网站/共享项目的WPF工程中计算代码度量时,弹出错误:
One or more projects were skipped. Code metrics are available only for C# and Visual Basic projects that are not Web Site projects or shared projects.
删除项目根目录下的隐藏.vs文件夹后,功能暂时恢复正常,但.vs文件夹自动重建后问题再次出现。
可行解决方法
1. 修正项目文件的DebugType配置
打开WPF项目的.csproj(VB项目为.vbproj)文件,找到所有<DebugType>节点,确保其值设置为full:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugType>full</DebugType> </PropertyGroup>
保存文件后重新加载项目,再尝试计算代码度量。这个配置能让VS正确识别项目的调试信息类型,避免误判项目类别。
2. 清理.vs文件夹内的特定缓存文件
无需删除整个.vs文件夹,仅删除.vs\{你的解决方案名}\v17\SolutionState.json(v17对应VS2022,其他版本路径中的版本号会不同)。该文件存储解决方案的状态缓存,删除后重启VS,代码度量功能会重新初始化状态,规避错误缓存导致的误判。
3. 临时禁用增量构建
在VS顶部菜单选择生成 > 解决方案属性,进入常规选项卡,取消勾选启用增量构建,然后重新生成整个解决方案,完成后再尝试计算代码度量。功能恢复后可以重新勾选该选项。
问题原因
.vs文件夹中的解决方案状态缓存可能因异常构建、配置变更后未正确更新,导致VS错误地将WPF项目识别为不支持代码度量的类型(如误判为网站项目)。上述方法分别从项目元数据、缓存重置、构建模式三个层面解决这个误判问题。
内容的提问来源于stack exchange,提问作者Raimonds Rikmanis

