VS2019安装coverlet.msbuild报[System.Version]::Parse计算错误如何解决
coverlet.msbuild安装版本解析报错解决方案
该报错核心原因是MSBuild执行coverlet的构建目标文件时,待解析的版本号变量为空,触发版本格式校验异常,可通过以下方式逐一排查解决:
- 方案1:更新Visual Studio 2019到最新版本
打开Visual Studio Installer,切换到「更新」标签,安装所有Visual Studio 2019社区版的可用更新,完成后重启设备再尝试安装coverlet.msbuild包。老版本VS2019自带的MSBuild存在版本解析逻辑兼容问题,更新后可解决绝大多数此类异常。 - 方案2:校验单元测试项目的目标框架配置
右键点击单元测试项目,选择「编辑项目文件」,确认<TargetFramework>标签的取值合法,例如.NET Core 3.1对应netcoreapp3.1、.NET 6对应net6.0,不存在标签为空或取值非法的情况,修改后保存重新加载项目即可。 - 方案3:临时修改coverlet构建目标文件兜底逻辑
打开报错提示路径下的coverlet.msbuild.targets文件,定位到调用[System.Version]::Parse的代码行,为入参增加空值兜底逻辑,例如将原逻辑[System.Version]::Parse('$(VersionVar)')修改为[System.Version]::Parse('$(VersionVar)' == '' ? '0.0.0.0' : '$(VersionVar)'),保存后重新加载项目即可完成安装。 - 方案4:更换coverlet包类型规避兼容问题
卸载原有coverlet.msbuild安装请求,改为安装coverlet.collectorNuget包,该包通过dotnet测试采集器逻辑实现覆盖率统计,不依赖MSBuild目标文件执行,兼容性更强。安装完成后执行dotnet test --collect:"XPlat Code Coverage"命令即可生成覆盖率报告。
内容的提问来源于stack exchange,提问作者rpietkiewicz
相关产品推荐
相关产品推荐

