NUnit 构建错误 'Missing compiler required member System.Range.get_Start'

NUnit build error 'Missing compiler required member System.Range.get_Start'

我正在尝试利用 NUNit 和 Newtonsoft JSON 对 API 进行断言。我有一个从解决方案中的另一个项目调用的方法,两个项目都在 .NET 4.7.2 上,并且所有 NuGet 包都按照我认为的版本对齐,但我收到以下错误:

CS0656: Missing compiler required member 'System.Range.get_Start'

奇怪的是,我在别处调用了相同的方法,但没有收到任何构建错误。

我已经阅读了一些资料,它似乎与 DLL 有关,但我已经检查过并且我有必要的 DLL 参考,包括 Microsoft.CSharp 和 System.Core。

我试过删除、重新添加引用,然后构建甚至删除 bin 文件夹并重新构建 - 似乎没有任何效果。

如有任何反馈,我们将不胜感激。

我发现 this GitHub issue 描述了未正确抑制的 C# 8 功能(在本例中为新索引功能)。在我的例子中,我在方法定义中有 copy-pasted 错误的类型(string 而不是 JObject)并试图在方法中像这样访问它:

public async Task PostFailureMessage([ActivityTrigger] string input)
{   // I got the error on this line

    string uri;

    // ...
    uri = input["failureURI"].ToString(); // trying to access as a JObject here
    // ...
}

我的解决方案是检查参数类型:string 应该是 JObject。错误消息完全无助于确定问题的根源。