Ошибка сборки NUnit 'Отсутствует обязательный элемент компилятора System.Range.get_Start' - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь использовать NUNit и Newtonsoft JSON, чтобы сделать утверждения против API.У меня есть метод, который я вызываю из другого проекта в решении, и оба проекта находятся на .NET 4.7.2, и все пакеты NuGet выровнены в соответствии с версией, которую я считаю, но я получаю следующую ошибку:

CS0656: Отсутствует обязательный элемент компилятора 'System.Range.get_Start'

Как ни странно, я вызывал тот же метод в другом месте и не получил никаких ошибок сборки для него.

Я кое-что прочитал, и кажется, что это может быть связано с DLL, но я проверил и у меня есть необходимые ссылки на DLL, включая Microsoft.CSharp и System.Core.

Я пытался удалить, заново добавить ссылку, а затем создать и даже удалить папку bin и заново создать - кажется, ничего не работает.

Любые отзывы будут оценены.

1 Ответ

1 голос
/ 09 июля 2019

Я обнаружил эту проблему GitHub , которая описывает функции C # 8 (в данном случае новые функции индексации), которые должным образом не подавляются.В моем случае я вставил неправильный тип в определение метода (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.Сообщение об ошибке было совершенно бесполезным в определении источника проблемы.

...