Невозможно добавить новые рабочие элементы с помощью TFS API

Привет, я пытаюсь добавить новые рабочие элементы в репозиторий TFS с помощью API, но когда я проверяю рабочий элемент перед его сохранением, он возвращает ошибку. Раньше у меня были исключения в отношении определений полей для ошибки, а именно «Симптом», «Шаги для воспроизведения» и «Сортировка». (Код ошибки TF 26027). Фрагмент кода показан ниже: Может ли кто-нибудь сказать мне, что здесь не так?

switch (workItemType)
        {
            case "Bug":
                {
                    workItem.Title = values["Title"].ToString();
                    workItem.State = values["State"].ToString();
                    workItem.Reason = values["Reason"].ToString();
                    workItem.Fields["Priority"].Value = values["Priority"].ToString();
                    workItem.Fields["Severity"].Value = values["Severity"].ToString();
                    //workItem.Fields["Triage"].Value = values["Triage"].ToString();
                    workItem.Fields["Assigned To"].Value = values["Assigned To"].ToString();
                    //workItem.Fields["Symptom"].Value = values["Symptom"].ToString();
                    //workItem.Fields["Steps to Reproduce"].Value = values["Steps to Reproduce"].ToString();

                    // Validate the Work Item fields.
                    ArrayList result = workItem.Validate();
                    // If any invalid fields are returned, report an error.
                    if (result.Count > 0)
                        MessageBox.Show("An Error occurred while adding the Bug to the repository.");
                    else
                        workItem.Save();
                }
                break;

person TS.    schedule 15.10.2009    source источник
comment
Я получаю сообщение об ошибке TF26027: определение поля somefield в файле определения типа рабочего элемента не существует. Добавьте определение для этого поля или удалите ссылку и повторите попытку. В чем проблема??   -  person TS.    schedule 15.10.2009


Ответы (4)


Чтобы найти доступные определения полей, вы можете выполнить итерацию по коллекции (FieldDefinitions). Свойства Name и ReferenceName — это значения, по которым вы можете индексировать коллекцию.

person Jim Lamb    schedule 16.10.2009
comment
В любом случае это хорошая идея, вы всегда должны повторять и проверять существование поля. Потому что, по крайней мере, здесь у нас много разных команд с индивидуальными шаблонами. И никогда не знаешь, от проекта к проекту, какие поля существуют, а какие нет. Сохраняет много исключений. - person Alex; 16.10.2009

Поле «Симптом» не может быть пустым

person zuoshanshan    schedule 25.09.2010

Просто читая сообщение об ошибке, похоже, что вы определяете поле с именем «somefield» в своем рабочем элементе. Я думаю, что у вас где-то висит какой-то старый код, возможно, над фрагментом кода, который вы опубликовали, где вы определяете значение для workItem.Fields["somefield"]

person Richard Banks    schedule 15.10.2009

Старый вопрос, но, надеюсь, кому-то поможет. Имя поля — «Шаги воспроизведения».

.Fields["Repro Steps"].Value 
person Matt Evans    schedule 21.05.2015