Как я могу добавить вложение через SDK к рабочему элементу без использования физического файла? - PullRequest
3 голосов
/ 18 августа 2010

Я пытаюсь создать новый рабочий элемент для TFS 2010 через клиентский SDK.

В SDK вы можете сделать что-то вроде этого:

WorkItem item = ...;
item.Attachments.Add(new Attachment("c:\\path\\on\\tfs\\server\\shot.png", "Screen shot"));
item.Save();

Но для этого требуетсяприкрепляемый файл для размещения на сетевом доступном пути или на диске самого TFS-сервера.

В нашем случае прикрепляемый файл - это просто большой двоичный объект в памяти, который необходимо сохранять вложения вфизический путь кажется ненужным и определенно усложняет этапы развертывания, требуемые нашими клиентами, поскольку нам нужно поместить их в файловую систему, а затем впоследствии удалить их после создания рабочего элемента.

Есть ли способприкрепить файл без необходимости помещать его в файловую систему - в идеале я имею в виду, скажем, просто предоставление байтового массива, имени файла и типа mime?


Обновление

Похоже, консенсус заключается в том, что это невозможно - и обходной путь заключается в написании собственного класса вложения, который оборачивает функциональность для создания команды.файл с вложенными файлами на диске:

http://witcustomcontrols.codeplex.com/SourceControl/changeset/view/74794#336044

1 Ответ

5 голосов
/ 18 августа 2010

Это невозможно.

Есть хорошая реализация добавления скриншота к рабочему элементу с использованием временного файла: http://witcustomcontrols.codeplex.com/SourceControl/changeset/view/74794#336038

...