是的,SmartDevice.Connectivity的AFAIK v11將無法部署APPX。你需要V12來部署APPX。即使部署WP8.1的工具,API也是如此不同。APPX是部署WP7-WP8.0 XAP的不同工具。
![XAP deployment tool vs. 8.1 APPX deployment tool](https://i.stack.imgur.com/3Zgsf.png)
無論如何,你可以使用此C#代碼部署了Windows Phone 8.1 APPX:
static void Main(string[] args)
{
// step #1: Add refrences.
// - Add DLL reference to: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\Tools\AppDeploy\Microsoft.Phone.Tools.Deploy.dll
// GAC references are implicit on computers with VS2013/VS2014 installed alongside WP8.1 dev tools.
// - GAC reference to: Microsoft.Phone.Tools.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// - GAC reference to: Microsoft.SmartDevice.Connectivity.Interface, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// - GAC reference to: Microsoft.SmartDevice.MultiTargeting.Connectivity, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
try
{
// Step #2: Get devices
var devices = Utils.GetDevices();
Console.WriteLine("Possible Devices for deployment: ");
foreach (var deviceInfo in devices)
{
Console.WriteLine("\t" + deviceInfo.ToString());
}
// Step #3: choose a device
var device = devices.FirstOrDefault(d => d.ToString() == "Emulator 8.1 1080P 6 inch");
if (device == null)
return;
Console.WriteLine("Using device: " + device.ToString());
// step #4: Select XAP, DeploymentOptions and Manifest
string appxFileUri = @"D:\Users\Justin Angel\Documents\Visual Studio 2013\Projects\App15\App15\AppPackages\App15_1.1.0.0_AnyCPU_Test\App15_1.1.0.0_AnyCPU.appx";
IAppManifestInfo manifestInfo = Utils.ReadAppManifestInfoFromPackage(appxFileUri); ;
DeploymentOptions deploymentOptions = DeploymentOptions.None;
// Step #5: deploy
Console.WriteLine("Attempting to deploy: " + manifestInfo.Name + " from " + appxFileUri);
Utils.InstallApplication(device, manifestInfo, deploymentOptions, appxFileUri);
Console.WriteLine("deployed successfully");
}
catch (Exception ex)
{
Console.WriteLine("Failed to deploy");
}
Console.ReadKey();
}
當我嘗試運行此APPX已成功部署在我的機器一切正常和應用程序按預期方式安裝。
![Foo Bar Baz Test app successfully installs](https://i.stack.imgur.com/tbK8U.png)
如果你想獲得與Windows手機發燒友8.1模擬器/設備自動化(安裝在SD卡上,刪除,企業安裝等),你可以玩不同的DeploymentOptions:
namespace Microsoft.Phone.Tools.Deploy
{
[Flags]
public enum DeploymentOptions
{
None = 0,
PA = 1,
Debug = 2,
Infused = 4,
Lightup = 8,
Enterprise = 16,
Sideload = 32,
TypeMask = 255,
UninstallDisabled = 256,
SkipUpdateAppInForeground = 512,
DeleteXap = 1024,
InstallOnSD = 65536,
OptOutSD = 131072,
}
}
![Works on my machine](https://i.stack.imgur.com/0pBss.png)
如果你需要一個簡單的部署(用更少的選項),然後在命令行AppDeployCmd附帶wp8.1 SDK工具和作品真的很好 - 易於實現自動化。如果您需要關於如何使用multidevice.connectivity程序集的提示,也可以使用dotpeek或反射器對其進行反編譯。 – Stuart 2014-10-11 07:01:45
有沒有辦法將appx部署到已經運行的模擬器? – Herno 2015-04-20 19:39:05