Откройте приложение Windows Phone 7 в эмуляторе с помощью командной строки - PullRequest
0 голосов
/ 30 августа 2011

Есть ли способ открыть приложение Windows Phone 7 в эмуляторе с помощью командной строки?

Я знаю, что уже существует вопрос, связанный с этим здесь , но я хочу простойспособ запустить приложение wp7 (имеющий файл xap) из командной строки без изменения кода приложения.

Я знаю, что это возможно для приложений XNA (информация здесь ), но яНе знаете, возможно ли это для приложений, созданных в Silverlight Framework?эта проблема у меня была.В любом случае мне пришлось внести небольшие изменения: изменил строку:

Platform WP7SDK = dsmgrObj.GetPlatforms().Single(p => p.Name == "New Windows Mobile 7 SDK");

на строку:

Platform WP7SDK = dsmgrObj.GetPlatforms().Single(p => p.Name == "Windows Phone 7");

Я использовал foreach для получения названий платформ:

 // iterate over all platforms and write their names
 foreach (Platform p in dsmgrObj.GetPlatforms().ToList<Platform>())
 {
    Console.WriteLine("Platform: " + p.Name);
 }

и строка:

WP7Device = WP7SDK.GetDevices().Single(d => d.Name == "Windows Phone 7 Emulator");

в строку:

WP7Device = WP7SDK.GetDevices().Single(d => d.Name == "Windows Phone Emulator");

Используется снова a foreach:

 // iterate over all devces and write their names
                foreach (Device d in WP7SDK.GetDevices().ToList<Device>())
                {
                    Console.WriteLine("Device: " + d.Name);
                }

1 Ответ

1 голос
/ 31 августа 2011

Как уже упоминалось, вы должны следить за блогом Джастина Ангела . Конечным результатом является очень простое приложение командной строки, которое вы запускаете, среди прочего, для установки вашего XAP-файла на эмулятор / телефон и запуска этого приложения.

Есть одна вещь, которую я бы изменил. Приложение Джастина удаляет предыдущую версию вашего приложения перед установкой новой. Это удалит все файлы в изолированном хранилище, включая ресурс IsolatedStorageSettings. Я внес следующие изменения в обновление приложения телефона, если оно уже существует.

// ... code to get command line parameters, device instance etc ...

if (WP7Device.IsApplicationInstalled(appID)) {
    Console.WriteLine("Found {0} XAP on Windows Phone 7 Emulator/Device...", appName);
    app = WP7Device.GetApplication(appID);
    app.TerminateRunningInstances();
    app.UpdateApplication("NormalApp", 
                           appLocation + @"\ApplicationIcon.png", 
                           appLocation + @"\Bin\" + configuration + @"\" + appName + @".xap");

     Console.WriteLine("{0} XAP Updated from Windows Phone 7 Emulator/Device...", appName);
} else {
    // Install XAP
    Console.WriteLine("Installing {0} XAP to Windows Phone 7 Emulator/Device...", appName);
    app = WP7Device.InstallApplication(appID,
                                       appID,
                                       "NormalApp",
                                       appLocation + @"\ApplicationIcon.png",
                                       appLocation + @"\Bin\" + configuration + @"\" + appName + @".xap");
     Console.WriteLine("{0} XAP installed to Windows Phone 7 Emulator...", appName);
}
// Launch Application 
Console.WriteLine("Launching {0} on Windows Phone 7 Emulator...", appName);
app.Launch();
Console.WriteLine("Launched {0} on Windows Phone 7 Emulator...", appName);

Ура, Алистер

...