代码之家  ›  专栏  ›  技术社区  ›  Bittercoder

如何在不使用物理文件的情况下通过SDK向工作项添加附件?

  •  3
  • Bittercoder  · 技术社区  · 14 年前

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

    但这需要将要附加的文件放在网络可访问的路径上,或者放在TFS服务器本身的磁盘上。

    在我们的例子中,所附加的文件只是内存中的blob,必须将附件保存到物理路径似乎是不必要的,而且肯定会使客户所需的部署步骤复杂化,因为我们需要将它们放在文件系统中,然后在创建完工作项后将其删除。

    有没有什么方法可以附加一个文件而不必将它放在文件系统上-理想的情况下,我想,比方说,只提供一个字节数组,文件名和mime类型?


    似乎大家一致认为这是不可能的—解决方法是编写自己的附件类,该类封装了在磁盘上创建临时附件文件的功能:

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

    1 回复  |  直到 10 年前
        1
  •  5
  •   Ewald Hofman    14 年前

    这是不可能的。

    使用临时文件向工作项添加屏幕截图有一个很好的实现: http://witcustomcontrols.codeplex.com/SourceControl/changeset/view/74794#336038