Поделиться через


FileDeployer - класс

Обновлен: Ноябрь 2007

Используется для передачи файлов между смарт-устройством и настольным компьютером.

Пространство имен:  Microsoft.SmartDevice.Connectivity
Сборка:  Microsoft.SmartDevice.Connectivity (в Microsoft.SmartDevice.Connectivity.dll)

Синтаксис

'Декларация
Public Class FileDeployer
'Применение
Dim instance As FileDeployer
public class FileDeployer
public ref class FileDeployer
public class FileDeployer

Заметки

Этот класс не имеет каких-либо конструкторов. Для получения экземпляра используется метод Device.GetFileDeployer.

Примеры

Imports System
Imports System.Collections.ObjectModel
Imports Microsoft.SmartDevice.Connectivity

Class [source]

    Shared Sub Main(ByVal args() As String) 

        ' Get the datastore object
        Dim dsmgr As New DatastoreManager(1033)

        ' Get the platform object
        Dim platform As Platform = GetPlatformByName("Windows Mobile 5.0 Pocket PC SDK", dsmgr)

        Try
            ' Get the default device in the platform, usually an emulator.
            Dim device As Device = platform.GetDevice(platform.GetDefaultDeviceId())

            device.Connect()

            If device.IsConnected() Then

                Dim fd As FileDeployer = device.GetFileDeployer()

                ' Deploy .NET Compact Framework 2.0 using the ID of its add-on package.
                ' Add-on packages are located in \ProgramData\Microsoft\Corecon\1.0\addons
                fd.DownloadPackage(New ObjectId(New Guid("ABD785F0-CDA7-41c5-8375-2451A7CBFF26")))


                Dim cgautil As RemoteProcess = device.GetRemoteProcess()


                ' Display the version of .NET CF on the device before installation.
                cgautil.Start("\windows\cgacutil.exe", "")



                ' Run the cab installer with no UI prompt
                Dim installer As RemoteProcess = device.GetRemoteProcess()
                installer.Start("wceload.exe", "/noui \windows\netcfv2.wm.armv4i.cab")
                While installer.HasExited() <> True
                    System.Threading.Thread.Sleep(1000)
                End While

                ' Display the version of .NET CF on the device after installation.
                If Not cgautil.HasExited() Then
                    cgautil.Kill()
                End If
                cgautil.Start("\windows\cgacutil.exe", "")

            End If


        Catch e As System.Exception
            Console.WriteLine(e.Message)
            Console.ReadLine()
        End Try

    End Sub 'Main



    ' Returns a platform if the supplied name can be found in the datastore.  
    ' Returns null pointer if platform cannot be found
    Private Shared Function GetPlatformByName(ByVal p As String, _
                                              ByVal dsmgr As DatastoreManager) As Platform
        ' Get all platforms in the datastore.
        Dim platforms As Collection(Of Platform) = dsmgr.GetPlatforms()

        ' Find the platform whose name matches the parameter.
        Dim platform As Platform
        For Each platform In platforms
            If platform.Name = p Then
                Return platform
            End If
        Next platform
        Return Nothing

    End Function 'GetPlatformByName
End Class '[source]
using System;
using System.Collections.ObjectModel;
using Microsoft.SmartDevice.Connectivity;
using System.Windows.Forms;


class source
{
    static void Main(string[] args)
    {

        // Get the datastore object
        DatastoreManager dsmgr = new DatastoreManager(1033);

        // Get the platform object
        Platform platform = GetPlatformByName("Windows Mobile 5.0 Pocket PC SDK", dsmgr);

        try
        {
            // Get the default device in the platform, usually an emulator.
            Device device  = platform.GetDevice(platform.GetDefaultDeviceId());

            device.Connect();

            if (device.IsConnected())
            {
                FileDeployer fd = device.GetFileDeployer();

                // Deploy .NET Compact Framework 2.0 using the ID of its add-on package.
                // Add-on packages are located in \ProgramData\Microsoft\Corecon\1.0\addons
                fd.DownloadPackage(new ObjectId(
                    new Guid("ABD785F0-CDA7-41c5-8375-2451A7CBFF26")));


                RemoteProcess cgautil = device.GetRemoteProcess();

                // Display the version of .NET CF on the device before installation.
                cgautil.Start(@"\windows\cgacutil.exe", "");

                // Run the cab installer with no UI prompt
                RemoteProcess installer = device.GetRemoteProcess();
                installer.Start("wceload.exe", @"/noui \windows\netcfv2.wm.armv4i.cab");
                while (installer.HasExited() != true)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                // Display the version of .NET CF on the device after installation.
                if (!cgautil.HasExited()) cgautil.Kill();
                cgautil.Start(@"\windows\cgacutil.exe", "");

            }

        }

        catch (System.Exception e)
        {
            Console.WriteLine(e.Message);
            Console.ReadLine();
        }
    }


    // ReturnS a platform if the supplied name can be found in the datastore.
    // Returns null pointer if platform cannot be found
    private static Platform GetPlatformByName(string p, DatastoreManager dsmgr)
    {
        // Get all platforms in the datastore.
        Collection<Platform> platforms = dsmgr.GetPlatforms();

        // Find the platform whose name matches the parameter.
        foreach (Platform platform in platforms)
        {
            if (platform.Name == p) return platform;
        }
        return null;

    }
}

Иерархия наследования

System.Object
  Microsoft.SmartDevice.Connectivity.FileDeployer

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

FileDeployer - члены

Microsoft.SmartDevice.Connectivity - пространство имен