2011-08-30 64 views
0

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

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

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

后来编辑 - 问题解决

深人地观察,贾斯汀博客似乎是这个问题我已经很ok了。 无论如何,我不得不做出一些小的变化: 改了行:

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

你能否澄清如何杰夫·威尔考克斯的答案斯科特的问题,你的联系,不回答你自己的问题? –

+0

@Rowland Shaw:我不想在代码中添加东西......我只是有了xap文件,我想知道是否可以使用某些命令行来运行它。我将在贾斯汀天使的博客文章中深入探讨。谢谢。 – Paul

+1

Justin的博客文章详细介绍了如何将该应用程序加载到模拟器上,而不必更改XAP本身 –

回答

1

如前所述,你应该按照贾斯汀天使的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); 

干杯, 麦金太尔

+0

嗨Alasdair并感谢您的回答。我遇到问题了:如何创建“控制台应用程序”?我没有控制台应用程序模板...我已经安装了Windows [Phone SDK 7.1 RC](http://create.msdn.com/en-us/home/getting_started) – Paul

+2

@Paul,如果您有Visual Studio Express 2010,只需单击**开始 - > Microsoft Visu ... 2010 - > Microsoft Visual Studio C#2010 Express **。从那里您可以创建一个新的控制台应用程序,就像您创建Windows Phone 7应用程序一样。复制Justin的博客并构建。独立_exe_现在将存在于'bin'子目录中。然后,您可以使用该exe文件从命令行启动,安装并运行WP7应用程序。 – ajmccall

+0

@Alasdair:我必须创建一个控制台应用程序,因为我只在我的电脑上安装了Visual Studio 2010 Express for Windows Phone,我无法做到这一点 - 请参阅[这里](http://www.microsoft.com/visualstudio/) zh-cn/products/2010-editions/product-comparison#expressCompareTable)。所以,从上面的链接中查看表格,我已经下载了Visual C#2010 Express,现在我可以创建一个控制台应用程序,但是我必须做出一些更改 - 我已经用细节更新了我的问题。 我发现在更新应用程序而不是卸载它的情况下,您的版本也很有用。非常感谢! – Paul

相关问题