VB.NET и BITS — фоновая интеллектуальная служба передачи

Кто-нибудь использовал BIT в VB.NET? Если да, то есть ли у вас образцы кода и советы?

Я смотрел на SharpBits, но у меня есть проект VB, для которого я хотел использовать BITS. Можно ли использовать его с моей программой VB.NET? (.NET 2.0) У меня было искушение попытаться преобразовать каждый класс в VB.NET в папке SharpBits.Base, но я решил спросить, если кто-то уже шел по этому пути раньше.

Изменить: Хорошо, ребята, если вы столкнетесь с этим вопросом. Что вы можете сделать, так это то, что в папке Sharpbits.Base (которую вы загружаете из codeplex) есть DLL, на которую вы можете ссылаться в каталоге Bin. Вы можете добавить это в свои ссылки, чтобы получить к нему доступ. Отмечаю Конрада как ответ, так как он был достаточно любезен, чтобы опубликовать.

Дальнейшее редактирование:
Мне удалось заставить 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 (вы можете получить их с компакт-диска/DVD-диска Windows 2003 в папке инструментов sup) и использование Bitsadmin.exe для просмотра состояния задания во время отладки. Надеюсь, это поможет следующему новичку. знак равно


person Cj Anderson    schedule 08.04.2009    source источник
comment
У меня было искушение попытаться преобразовать каждый класс в VB.NET в папке SharpBits.Base, но я решил спросить... - обычно нет причин для преобразования с одного языка на другой в .NET.   -  person Cheeso    schedule 12.08.2009


Ответы (3)


Любая причина, по которой вы не можете просто использовать SharpBits в VB? Преимущество .NET заключается именно в том, что библиотеки, написанные на разных языках .NET, могут беспрепятственно взаимодействовать, поэтому вы можете просто использовать SharpBits в VB, независимо от того, на каком языке, совместимом с .NET, он был написан.

person Konrad Rudolph    schedule 08.04.2009
comment
Я понимаю из абстрактного уровня, что в конце концов все конвертируется в MSIL. Однако я всегда преобразовывал код из C# в VB, когда использовал код в проекте. RE: Sharpbits Я пытался добавить файлы классов (.cs), но не мог ссылаться на их пространства имен. - person Cj Anderson; 08.04.2009
comment
Сотрите это, я вижу, что есть DLL, которую я могу использовать. Я попробую это. - person Cj Anderson; 08.04.2009
comment
совершенно необязательно конвертировать языки. .NET позволяет смешивать код или библиотеки разных языков в одной программе или приложении. - person Cheeso; 12.08.2009

Вы можете посмотреть здесь:

Использование фоновой интеллектуальной службы передачи (BITS) Windows XP с Visual Studio .NET

Я начал с этого, чтобы написать свою собственную библиотеку для управления BITS для передачи большого видеофайла через частную локальную сеть. Пример для NET 1.1, но не должно быть сложно перенести его на NET 2.0.

person Davide    schedule 08.04.2009

Вот новая альтернатива. Команда BITS в Microsoft теперь имеет страницу BITS из .NET и C# с использованием эталонных библиотек DLL плюс полный пример вызова 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
(Note that I also added a reference to a DLL that I downloaded from the BITS Manager source from the Reference DLL directory)
person PESMITH_MSFT    schedule 09.01.2019