connect to windows phone 8 using console applicati

2019-01-17 18:57发布

I am very new to windows phone development. I want to develop an app that will be launched when I connect my windows 8 phone to my laptop. I was following this tutorial (http://justinangel.net/WindowsPhone7EmulatorAutomation) and was able to connect to my windows 7 phone/emulator but I am not able to connect to my windows 8 phone or emulator. Is there any other way to connect to windows 8 phone?

Please let me know if there is any possible solution for this,

Thank you

2条回答
做自己的国王
2楼-- · 2019-01-17 19:05

I had trouble implementing the accepted solution because I was missing the references for these namespaces:

Microsoft.SmartDevice.Connectivity.Interface
Microsoft.SmartDevice.MultiTargeting.Connectivity

Here's where I found them:

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\
   Microsoft.SmartDevice.Connectivity.Interface\
   v4.0_11.0.0.0__b03f5f7f11d50a3a\
   Microsoft.Smartdevice.Connectivity.Interface.dll

and

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\
   Microsoft.SmartDevice.MultiTargeting.Connectivity\
   v4.0_11.0.0.0__b03f5f7f11d50a3a\
   Microsoft.Smartdevice.MultiTargeting.Connectivity.dll

Note that these paths, especially the v4.0_11.0.0.0__b03f5f7f11d50a3a part, may be different on your system. Add references to these DLLs in your project, and everything should work properly.

查看更多
\"骚年 ilove
3楼-- · 2019-01-17 19:16

I didn't get a chance to update this blog post yet. Delvis Gomez (A colleague on of mine) has updated the final code sample and OKed distributing it freely. I'll update that blog post for WP8 in the future, but in the meanwhile here's a pretty well documented code snippet on how to automate the WP8 Emulator.

Also, make sure to add a reference to the new DLLs needed like Microsoft.SmartDevice.MultiTargeting.Connectivity.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Reflection;

// Libraries needed to connect to the Windows Phone X Emulator
using Microsoft.SmartDevice.Connectivity;
using Microsoft.SmartDevice.Connectivity.Interface;
using Microsoft.SmartDevice.MultiTargeting.Connectivity;
using System.Globalization;
using System.Collections.ObjectModel;


namespace AutomatedUnitTestDriver
{
    class Program
    {
        static void Main(string[] args)
        {
            MultiTargetingConnectivity connectivity = new MultiTargetingConnectivity(CultureInfo.CurrentUICulture.LCID);

            // Get a connectable device for a specific Device ID (from the CoreCon datastore)
            string deviceId = "5E7661DF-D928-40ff-B747-A4B1957194F9";
            ConnectableDevice connectableDevice = connectivity.GetConnectableDevice(deviceId);
            Console.WriteLine("Found Connectable Device \'" + connectableDevice.Name + "\' for Device id {" + connectableDevice.Id + "}.");

            // Connect to the Device
            Console.WriteLine("Connecting to Device...");
            IDevice iDevice = connectableDevice.Connect();
            Console.WriteLine("Done!");

            // Check if the application is already install, if it is remove it (From WMAppManifect.xml)
            Guid appID = new Guid("{b6635769-b7ac-41a5-915d-5a7b0ae34481}"); 

            if (iDevice.IsApplicationInstalled(appID))
            {
                Console.WriteLine("Uninstalling application...");
                iDevice.GetApplication(appID).Uninstall();
                Console.WriteLine("Done!");
            }

            Guid productId = appID;
            Guid instanceId = appID;
            string applicationGenre = "NormalApp";
            string iconPath = @"C:\Share\LatestAPI\TestCode\Automated\AutomatedUnitTests\Bin\Debug\ApplicationIcon.png";
            string xapPackage = @"C:\Share\LatestAPI\TestCode\Automated\AutomatedUnitTests\Bin\Debug\AutomatedUnitTests.xap";

            // Install the application 
            Console.WriteLine("Installing the application...");
            IRemoteApplication remoteApplication = iDevice.InstallApplication(appID, appID, applicationGenre, iconPath, xapPackage);
            Console.WriteLine("Done!");

            // Launch the application
            Console.WriteLine("Starting the application...");
            remoteApplication.Launch();

            int startStopWaitTime = 1000;   // msec
            int executionWaitTime = 180000; // msec

            // Note that IRemoteApplication has a 'IsRunning' method but it is not implemented.
            // So, for the moment we sleep few msec.
            Thread.Sleep(startStopWaitTime);
            Console.WriteLine("Done!");

            // Allow application to complete 
            Console.WriteLine("Application is running! Waiting few seconds...");
            Thread.Sleep(executionWaitTime);

            try
            {
                IRemoteIsolatedStorageFile remoteIsolatedStorageFile = remoteApplication.GetIsolatedStore();
                string sourceDeviceFilePath = (object)Path.DirectorySeparatorChar + "TestResults.trx";
                string targetDesktopFilePath = @"C:\Share\LatestAPI\TestCode\Automated\AutomatedUnitTests\Bin\Debug\" + "TestResults.trx";
                remoteIsolatedStorageFile.ReceiveFile(sourceDeviceFilePath, targetDesktopFilePath,true);
            }
            catch (Exception exception)
            {
                Console.WriteLine("Exception \'" + exception.Message + "\' reading file from device.");
            }

            // Terminate application
            Console.WriteLine("Terminating the application...");
            remoteApplication.TerminateRunningInstances();

            Thread.Sleep(startStopWaitTime);
            Console.WriteLine("\nDone!");

            // Disconnect from the emulator
            Console.WriteLine("Disconnecting Device...");
            iDevice.Disconnect();
            Console.WriteLine("\nDone!");
        }
    }
}
查看更多
登录 后发表回答