Как развернуть.appx в Windows Phone 8.1
Я использую Microsoft.SmartDevice.Connectivity для подключения к ОС Windows Phone 8.1 с инструкцией по этой ссылке: подключиться к Windows Phone 8 с помощью консольного приложения
Теперь я могу подключиться как к эмулятору Windows Phone 8.1, так и к устройству Windows Phone 8.1 и запустить любое приложение, используя их ProductID.
Так что теперь я хотел бы установить свои приложения, которые я разработал, на эти устройства с помощью этой платформы. Я знаю, что пакет XAP для WP8.1 - это файл.appx. Чтобы установить 1 приложение в этой среде, я использую метод InstallApplication(), например:
IRemoteApplication remoteApplication = iDevice.InstallApplication(appID, appID, applicationGenre, iconPath, xapPackage);
Какой appID является ProductID, я получил его на странице Package.appxmanifest: 556ee9d4-5640-4120-9916-44b1ca27352f
Но я получил исключение:
"An unhandled exception of type 'Microsoft.SmartDevice.Connectivity.SmartDeviceException' occurred in Microsoft.Smartdevice.Connectivity.dll
Additional information: An attempt was made to move the file pointer before the beginning of the file."
Когда я использую средство развертывания приложений, предоставляемое Visual Studio, это приложение можно установить, но когда я использую инфраструктуру подключения, я не могу установить его.
Итак, как я могу установить это приложение с помощью Connectivity Framework?
Пожалуйста, помогите мне. Спасибо за помощь.
1 ответ
Да, AFAIK v11 SmartDevice.Connectivity не сможет развернуть APPX. Вам понадобится V12 для развертывания APPX. API настолько различны, что даже инструмент для развертывания WP8.1 APPX - это другой инструмент, чем инструмент для развертывания XAP WP7-WP8.0.
В любом случае вы можете развернуть APPX для Windows Phone 8.1, используя этот код C#:
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 успешно развернут на моей машине, все работает нормально, и приложение устанавливается, как и ожидалось.
Если вы хотите получить больше удовольствия от эмулятора Windows Phone 8.1 / автоматизации устройств (установка на SD-карту, удаление, установка на предприятии и т. Д.), Вы можете поэкспериментировать с различными вариантами развертывания:
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,
}
}