2011-08-30 65 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

相關問題