在 As 项上使用 Should().NotBeNull() 时出现不明确的调用

Cha*_*rdy 10 fluent-assertions

当我进行以下测试时

var contentRes = res as OkNegotiatedContentResult<List<MachineHealthTableDTO>>;
contentRes.Should().NotBeNull();
Run Code Online (Sandbox Code Playgroud)

我收到错误

The call is ambiguous between the following methods or properties: 'DataRowAssertionExtensions.Should<TDataRow>(TDataRow)' and 'DataSetAssertionExtensions.Should<TDataSet>(TDataSet)'
Run Code Online (Sandbox Code Playgroud)

当我从流畅的断言 5 升级到 6 时,这种情况开始发生。任何有关如何解决此问题的想法将不胜感激。

Sup*_*mbo 8

我有一个非常类似的问题enum

actualEnumValue.Should().Be(expectedEnumValue);
Run Code Online (Sandbox Code Playgroud)

与错误

错误 CS0121 以下方法或属性之间的调用不明确:“DataRowAssertionExtensions.Should(TDataRow)”和“DataSetAssertionExtensions.Should(TDataSet)”

<LangVersion>7</LangVersion>我终于通过从项目文件中删除来解决这个问题。


rgv*_*lee 5

我刚刚在 .NET Framework 4.8 控制台应用程序中遇到了这个问题。在本地可以正常构建,但在 Azure DevOps 管道中构建步骤失败。

事实证明管道正在使用vs2017-win2016虚拟机。颠倒它windows-2019- 使用 Visual Studio 2019/更高版本的 MSBuild - 解决了这个问题。

  • 我认为这可能是因为我们有一个旧的(VS 2015、Server 2012)构建服务器,而我使用的是 VS 2019,只是需要一些想法/确认它可能是这样。我的上级已经提出了构建服务器问题,但是看起来要转到 Fluent 6.x,你必须使用 VS 2019 构建,这并不适合所有人。最后我只是恢复到 5.x 包。 (2认同)