VB.NET和BITS - 后台智能传输服务

时间:2009-04-08 13:54:57

标签: vb.net bits microsoft-bits bits-service

有没有人在VB.NET中使用BIT?如果是这样,你有代码样本和建议吗?

我在看SharpBits,但我有一个VB项目,我想使用BITS。可以在我的VB.NET程序中使用它吗? (.NET 2.0)我很想尝试将每个类转换为SharpBits.Base文件夹中的VB.NET,但想到我会问,以防有人之前走过这条路线。

编辑:如果你遇到这个问题,请大家好。你可以做的是在Sharpbits.Base文件夹(你从codeplex下载)中有一个你可以在Bin目录中引用的DLL。您可以将其添加到引用中以访问它。将康拉德标记为答案,因为他很善于发帖。

进一步编辑:
我设法使用一些快速的代码,我粘贴在下面的任何可能偶然发现这个问题的人。就像我上面提到的那样,将DLL添加到你的项目中。


Dim b As New SharpBits.Base.BitsManager
Dim mynewjob As SharpBits.Base.BitsJob = _ 
b.CreateJob("jobname", SharpBits.Base.JobType.Download)
mynewjob.AddFile("\\server\share\bigfile.zip", "c:\bigfile.zip")
mynewjob.Resume()

您需要编写一些逻辑来检查作业的状态。一旦达到“已转移”状态,您就可以将其标记为已完成。这会将文件从.bin写入您列出的文件名。帮助我的一点是安装Windows支持工具(您可以从sup工具文件夹中的Windows 2003 Cd / DVD获取它)并使用Bitsadmin.exe在调试时查看作业的状态。希望这有助于下一个新秀。 =)

3 个答案:

答案 0 :(得分:4)

为什么你不能简单地在VB中使用SharpBits? .NET的优势在于正是,用不同的.NET语言编写的库可以无缝地互操作,因此无论使用何种.NET兼容语言,您都可以在VB中使用SharpBits。

答案 1 :(得分:1)

你可以看看这里:

Using Windows XP Background Intelligent Transfer Service (BITS) with Visual Studio .NET

我从这里开始编写自己的库来管理BITS,以便通过专用LAN传输大视频文件。示例适用于.NET 1.1,但将其移植到NET 2.0并不困难。

答案 2 :(得分:0)

这是一个新的选择。微软的BITS团队现在在Calling into BITS from .NET and C# using reference DLLs上有一个页面,在GitHub上还有一个完整的示例调用BITS Manager

我刚刚尝试将它们与Visual Basic结合使用;我的代码最终看起来像这样:

    Imports BITS = BITSReference1_5
    Module Module1
        Sub Main()
            Dim mgr = New BITS.BackgroundCopyManager1_5
            Dim jobGuid As BITS.GUID
            Dim job As BITS.IBackgroundCopyJob
            mgr.CreateJob("My simple job", BITS.BG_JOB_TYPE.BG_JOB_TYPE_DOWNLOAD, jobGuid, job)
            job.AddFile("http://www.microsoft.com", "c:\temp\2019\BITS-VB\Downloadfile.html")
            job.Resume()
        End Sub
    End Module
(请注意,我还添加了对从DLL目录中的BITS Manager源下载的DLL的引用)