Windows Phone SDK提供了使用编程方法访问Windows 10 Mobile设备的程序集,以Windows 10 Build 14393.795 SDK为例,它们位于:
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\Microsoft.Diagnostics.Tracing.EventSource.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\Microsoft.Tools.Connectivity.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\Microsoft.Tools.Deploy.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\SirepClient.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\SirepInterop.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\SshClient.dll
%ProgramFiles(x86)%\Windows Kits\10\bin\x86\WinAppDeployCommon.dll在项目中参考这些程序集后,引入下面的命名空间:
Imports Microsoft.Tools.Connectivity
Imports Microsoft.Tools.Deploy请注意,SirepClient.dll和SshClient.dll不是.Net程序集,您无需将它们加入参考,只需要将它们加入您的项目解决方案,并将“构建动作”设为“无”、“复制到输出目录”设为“有更新时才复制”即可。
随后,即可以编程的形式访问Windows 10 Mobile。
枚举和连接设备
首先,初始化设备发现工具,配置一个合理的设备发现超时值,并建立设备发现结果容器:
Dim PhoneConnectionManager As New DeviceDiscoveryService
Dim PhoneDiscoveryTimeOut As TimeSpan = TimeSpan.FromSeconds(5)
Dim DevicesDiscovered As New List(Of DiscoveredDeviceInfo)连接DeviceDiscoveryService.Discovered()事件,该事件在发现连接的设备时触发,并提供可连接设备的DiscoveredDeviceInfo对象:
AddHandler PhoneConnectionManager.Discovered, Sub(sender As Object, e As DiscoveredEventArgs)
DevicesDiscovered.Add(e.Info)
End Sub配置设备发现超时值,并进行等待:
PhoneConnectionManager.Timeout = PhoneDiscoveryTimeOut
PhoneConnectionManager.Start()
Thread.Sleep(PhoneDiscoveryTimeOut)
PhoneConnectionManager.Stop()DiscoveredDeviceInfo对象提供了设备的基本信息,使用这些信息可以配置ConnectionOptions实例,该实例可通过配置IP地址(ConnectionOptions.IPAddress)或GUID(ConnectionOptions.Guid)等方式,指定要连接的设备:
Dim ConnectionParam As New ConnectionOptions
ConnectionParam.Guid = DevicesDiscovered(0).UniqueId请注意:建议不要在代码中显式设置ConnectionOptions对象的ConnectTimeout属性,设置该属性可能导致后续执行部署操作时,出现内容类似“violates pattern constraint of '\bms-resource:.{1,256}'”的COM组件异常(但实际上应用程序包最终可以在目标设备上正常部署和运行)。
配置ConnectionOptions实例完成后,使用RemoteDeployClient对象提供的Connect()方法实现设备连接:
Dim ConnectedPhone As RemoteDeployClient = RemoteDeployClient.CreateRemoteDeployClient()
ConnectedPhone.Connect(ConnectionParam)此时,应该已经成功连接到了目标设备。
安装应用程序包
您可以通过编程方式向设备部署AppX或AppXBundle程序包。此处使用字符串变量AppPackagePath表示需要部署的程序包的路径,字符串列表AppDependencies表示该程序包的依赖项的路径集合(可以为空列表,不能为Nothing),字符串列表AppCertPath表示该程序包的证书路径(不需要证书时,应设为Nothing,不可以为空字符串)。
开始安装应用程序:
'Install package
ConnectedPhone.InstallAppx(InstallAppxOptions.ResolveDependencies, AppPackagePath, AppDependencies, AppCertPath)




