【问题标题】:VB.NET and BITS - Background Intelligent Transfer ServiceVB.NET 和 BITS - 后台智能传输服务
【发布时间】:2009-04-08 13:54:57
【问题描述】:

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

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

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

进一步编辑:
我设法让sharpbits使用一些我在下面粘贴的快速代码,供任何可能偶然发现这个问题的人使用。就像我上面提到的,将 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 查看作业状态。希望对下一个菜鸟有所帮助。 =)

【问题讨论】:

  • “我很想尝试将 SharpBits.Base 文件夹中的每个类转换为 VB.NET,但我想我会问..” - 通常没有理由从一种语言转换为另一种语言.NET。

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


【解决方案1】:

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

【讨论】:

  • 我从抽象的层面理解,一切最终都会转换为MSIL。但是,当我在项目中使用代码时,我总是将代码从 C# 转换为 VB。 RE: Sharpbits 我尝试添加无法引用其名称空间的类 (.cs) 文件。
  • 从头开始,我看到有一个我可以使用的 DLL。我会试试的。
  • 完全不需要转换语言。 .NET 允许在同一个程序或应用程序中混合使用不同语言的代码或库。
【解决方案2】:

你可以看看这里:

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

我从这里开始编写自己的库来管理 BITS 以跨私有 LAN 传输大视频文件。示例适用于 NET 1.1,但应该不难将其移植到 NET 2.0。

【讨论】:

    【解决方案3】:

    这是一个新的选择。 Microsoft 的 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
    
    (请注意,我还添加了对我从 BITS 管理器源从 Reference DLL 目录下载的 DLL 的引用)

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2010-11-19
      • 2011-03-10
      • 2011-01-13
      • 2010-09-28
      • 2015-11-18
      相关资源
      最近更新 更多