Microsoft Updater Application Block v2.0 中内置的 Downloader 是采用 BITS 技术下载文件的。BITS 是 Background Intelligent Transfer Service 缩写。
BITS 是 Windows 中新增的一项非常实用的文件传输功能,它通过 HTTP 异步地从远程服务器上下载文件。 BITS 可以专门利用空闲带宽来处理多个用户的多个下载任务。 尽管 BITS 不仅仅限于自动更新应用程序使用,但它是 Windows Update 使用的基础 API。 并且,由于它可用于任何应用程序,因此可用来完成创建自动更新应用程序的过程中所涉及到的大部分非常困难的工作。
有关如何利用 .NET 和 BITS API 编写自动更新应用程序,可以参考《使用 .NET 和后台智能传输服务 API 来编写自动更新应用程序》和 Microsoft Updater Application Block v2.0 的文档。
对于编写自动更新应用程序,BITS 技术是不错的选择,但不是所有 Windows 操作系统都支持它。
Run-Time Requirements
BITS v2.0 is included in Microsoft® Windows® XP SP2 and Windows Server 2003 SP1.
You can also download BITS v2.0 for Windows Server 2003, Windows XP SP1, Windows XP, Windows 2000 SP4, and Windows 2000 SP3. To download BITS v2.0, go to the Microsoft Download Center and install KB842773.
因此,实现一个以 HTTP 方式下载文件的 Downloader 是十分有必要的,今天终于在 GotDotNet User Sample 看到别人已经用 C# 实现了 HTTPDownloader。由于作者没有提供 VB.NET 版本,使用 VB.NET 的朋友可以试一试 CodeTranslator 将代码转换成相应的 VB.NET 版本。