使用命令行在模拟器中打开Windows Phone 7应用程序

时间:2011-08-30 07:40:40

标签: windows-phone-7 emulation

有没有办法使用命令行在模拟器中打开Windows Phone 7应用程序?

我知道已存在与此here相关的问题,但我想要一种简单的方法从命令行启动wp7应用程序(具有xap文件),而无需修改应用程序的代码。

我知道这可以用于XNA应用程序(info here),但我不知道这是否适用于在Silverlight框架下制作的应用程序?!

稍后修改 - 问题已解决

深刻地看,Justin博客似乎对我遇到的这个问题非常好。 无论如何,我不得不做一些小改动: 改变了界限:

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");

再次使用foreach

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

1 个答案:

答案 0 :(得分:1)

如前所述,你应该遵循Justin Angel的blog post。最终结果是一个非常简单的命令行应用程序,您可以运行该应用程序,除其他外,将XAP文件安装到模拟器/手机并启动此应用程序。

我会修改一件事。在安装新应用程序之前,Justin的应用程序会卸载以前版本的应用程序。这将删除隔离存储中的所有文件,包括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);

干杯, 麦金太尔