使用coverlet与.Net Framework生成错误:无法评估表达式"[System.Version] :: Parse('')"

7

我写了一个非常简单的C# .Net Framework应用程序并添加了一些单元测试。现在,尝试使用coverlet检查覆盖率时出现错误MSB4184。

表达式 "[System.Version] :: Parse('')" 无法计算。版本字符串部分太短或太长(参数“input”)。

有人遇到过这样的错误吗?


1
[typename]::StaticMethod() <-- 这是 [tag:powershell] 的语法,不是 C# - 也许来自您的构建脚本? - Mathias R. Jessen
@MathiasR.Jessen 这也是 Msbuild 语法(因此出现了 MSB 错误),所以这是 Msbuild 脚本。 - pinkfloydx33
看起来你传入了一个空字符串,所以“版本字符串部分太短”是完全准确的。 - Ben Voigt
2个回答

6
我解决这个问题的一种方法是在您的$HOME\.nuget\packages目录中重命名(或删除)coverlet.collector目录。完全关闭Visual Studio,然后重新打开您的解决方案或项目。已重命名 coverlet.collector 目录的文件资源管理器

2
Coverlet存在一些限制。它仅支持SDK样式的项目,在某些情况下仅支持.NET Core测试项目。如果您在解决方案中启动一个新的测试项目,这不是问题,因为您可以混合使用项目类型。
但是,将现有的旧测试项目迁移到SDK样式的.NET Core项目可能是必要的。
关于要求的更多信息,请参阅https://github.com/coverlet-coverage/coverlet#Quick-Start

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接