Я писал инструмент на c #, который будет генерировать html-отчет о наборах изменений и рабочих элементах, связанных со сборками, между определенными датами. В отчет также включены ссылки на наборы изменений и рабочие элементы с использованием метода, описанного в этом вопросе . Когда я запускаю инструмент, у меня не возникает никаких проблем, но я дал его другим, чтобы проверить, и есть некоторые смешанные результаты. Некоторые могут запускать инструмент без проблем, но другие получают ошибки при запуске его на компьютерах, на которых не установлен TFS 2010. Это сообщение об ошибке
System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.TeamFoundation.VersionControl.Client.Changeset.get_WorkItems()
В результате тестирования на таких машинах я обнаружил, что мой инструмент без проблем подключается к TFS и также может без проблем читать элементы Chageset, но когда дело доходит до получения сведений о рабочих элементах, связанных с наборами изменений, возникает ошибка. Код для циклического выполнения рабочих элементов:
WorkItem[] csWorkItems = changeSet.WorkItems;
Я не совсем понимаю, почему это вызывает ошибку на компьютерах, на которых не установлен TFS 2010. Кроме того, я посмотрел отчет об этих машинах, и ссылки на наборы изменений и рабочие элементы работают правильно!
Кто-нибудь может дать мне причину, почему это не работает и как это исправить, или, может быть, дать мне альтернативу тому, как я могу получить объекты Work Item, не вызывая эту ошибку?