【问题标题】:Open a windows phone 7 application In Emulator using Command Line使用命令行在模拟器中打开 windows phone 7 应用程序
【发布时间】:2011-11-06 14:12:40
【问题描述】:

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

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

我知道这对于 XNA 应用程序是可能的(信息 here)但我不知道这对于在 Silverlight 框架下制作的应用程序是否可能?!

稍后编辑 - 问题已解决

仔细看,贾斯汀的博客似乎对我遇到的这个问题非常好。 无论如何,我不得不做一些小改动: 换行:

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

【问题讨论】:

  • 您能否澄清 Jeff Wilcox 对您所链接的 Scott 问题的回答如何没有回答您自己的问题?
  • @Rowland Shaw:我不想在代码中添加一些东西......我只有 xap 文件,我想知道是否可以使用某些命令行运行它。明天我将深入研究 Justin Angel 的博文。谢谢。
  • Justin 的博客文章详细介绍了如何在不更改 XAP 本身的情况下将该应用程序放到模拟器上
  • 这是我的第一个问题:如何创建“控制台应用程序”?我没有控制台应用程序模板...我已经安装了 Windows Phone SDK 7.1 RC
  • @Rowland Shaw:仔细看,贾斯汀的博客文章似乎非常适合我的情况。谢谢!

标签: windows-phone-7 emulation


【解决方案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);

干杯, 阿拉斯代尔

【讨论】:

  • 您好 Alasdair,感谢您的回答。我有一个开始的问题:如何创建“控制台应用程序”?我没有控制台应用程序模板...我已经安装了 Windows Phone SDK 7.1 RC
  • @Paul,如果您有 Visual Studio Express 2010,您只需单击 开始 -> Microsoft Visu... 2010 -> Microsoft Visual Studio C# 2010 Express。从那里您可以创建一个新的控制台应用程序,就像您创建 Windows Phone 7 应用程序一样。复制 Justin 的博客并构建。独立的exe 现在将存在于bin 子目录中。然后,您可以使用该 exe 从命令行启动、安装和运行您的 WP7 应用程序。
  • @Alasdair:我必须创建一个控制台应用程序,因为我只在我的 PC 上安装了适用于 Windows Phone 的 Visual Studio 2010 Express,所以我无法执行此操作 - 请参阅 here。因此,从上面的链接中查看表格,我已经下载了 Visual C# 2010 Express,现在我能够创建一个控制台应用程序,但我必须进行一些更改——我已经用详细信息更新了我的问题。我发现你的版本更新应用程序而不是卸载它也非常有用。非常感谢!
  • 我还能够按照here 的说明将参数添加到命令行。
  • 我想知道是否还有其他设备连接 API-s 可用于部署 WP7 应用程序?!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
  • 2013-02-23
  • 2012-07-25
  • 2012-07-07
  • 1970-01-01
相关资源
最近更新 更多