//public UserAppPackageDataModel FindPackage(string packageName) //{ // UserAppPackageDataModel result = null; // try // { // var packages = _packageManager.FindPackages().ToList(); // Windows.ApplicationModel.Package installedPackage = null; // foreach (var pkg in packages) // { // if (string.Compare(pkg.Id.Name, packageName, true) == 0) // { // var fpkg = _packageManager.FindPackages(pkg.Id.Name, pkg.Id.Publisher).ToList(); // installedPackage = fpkg.FirstOrDefault(); // break; // } // } // if (installedPackage == null) // { // RaiseMessage("No packages were found."); // } // else // { // RaiseMessage("Package was found."); // result = new UserAppPackageDataModel(installedPackage); // } // } // catch (UnauthorizedAccessException) // { // RaiseMessage("packageManager.FindPackages() failed because access was denied. This program must be run from an elevated command prompt."); // } // catch (Exception ex) // { // RaiseMessage(string.Format("packageManager.FindPackages() failed, error message: {0}", ex.Message)); // RaiseMessage(string.Format("Full Stacktrace: {0}", ex.ToString())); // } // return result; //} private void HandleDeploymentOperation(Windows.Foundation.IAsyncOperationWithProgress <DeploymentResult, DeploymentProgress> deploymentOperation) { RaiseMessage("Waiting for the operation to complete..."); deploymentOperation.Progress = (result, progress) => { Report(progress); }; deploymentOperation.Completed = (depProgress, status) => { if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Error) { Windows.Management.Deployment.DeploymentResult deploymentResult = deploymentOperation.GetResults(); RaiseMessage(string.Format("Operation Error: {0}", deploymentOperation.ErrorCode)); RaiseMessage(string.Format("Detailed Error Text: {0}", deploymentResult.ErrorText)); // 0x800B0109 Report(new DeploymentProgress() { percentage = 100 }); } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Canceled) { RaiseMessage("Operation Canceled"); } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Completed) { RaiseMessage("Operation succeeded!"); } else { RaiseMessage("Operation status unknown"); } RaiseCompletion(status == Windows.Foundation.AsyncStatus.Completed); }; }
private static bool registerSparsePackage(string externalLocation, string sparsePkgPath) { bool registration = false; try { Uri externalUri = new Uri(externalLocation); Uri packageUri = new Uri(sparsePkgPath); Console.WriteLine("exe Location {0}", externalLocation); Console.WriteLine("msix Address {0}", sparsePkgPath); Console.WriteLine(" exe Uri {0}", externalUri); Console.WriteLine(" msix Uri {0}", packageUri); PackageManager packageManager = new PackageManager(); //Declare use of an external location var options = new AddPackageOptions(); options.ExternalLocationUri = externalUri; Windows.Foundation.IAsyncOperationWithProgress <DeploymentResult, DeploymentProgress> deploymentOperation = packageManager.AddPackageByUriAsync(packageUri, options); ManualResetEvent opCompletedEvent = new ManualResetEvent(false); // this event will be signaled when the deployment operation has completed. deploymentOperation.Completed = (depProgress, status) => { opCompletedEvent.Set(); }; Console.WriteLine("Installing package {0}", sparsePkgPath); Debug.WriteLine("Waiting for package registration to complete..."); opCompletedEvent.WaitOne(); if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Error) { Windows.Management.Deployment.DeploymentResult deploymentResult = deploymentOperation.GetResults(); Debug.WriteLine("Installation Error: {0}", deploymentOperation.ErrorCode); Debug.WriteLine("Detailed Error Text: {0}", deploymentResult.ErrorText); } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Canceled) { Debug.WriteLine("Package Registration Canceled"); } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Completed) { registration = true; Debug.WriteLine("Package Registration succeeded!"); } else { Debug.WriteLine("Installation status unknown"); } } catch (Exception ex) { Console.WriteLine("AddPackageSample failed, error message: {0}", ex.Message); Console.WriteLine("Full Stacktrace: {0}", ex.ToString()); return(registration); } return(registration); }
public static int Main(string[] args) { Console.WriteLine("Copyright (c) Microsoft Corporation. All rights reserved."); Console.WriteLine("RemovePackage sample"); Console.WriteLine(); if (args.Length < 1) { Console.WriteLine("Usage: RemovePackageSample.exe packageFullname"); return(1); } string inputPackageFullName = args[0]; int returnValue = 0; try { Windows.Management.Deployment.PackageManager packageManager = new Windows.Management.Deployment.PackageManager(); Windows.Foundation.IAsyncOperationWithProgress <DeploymentResult, DeploymentProgress> deploymentOperation = packageManager.RemovePackageAsync(inputPackageFullName); ManualResetEvent opCompletedEvent = new ManualResetEvent(false); // this event will be signaled when the deployment operation has completed. deploymentOperation.Completed = (depProgress, status) => { opCompletedEvent.Set(); }; Console.WriteLine("Removing package {0}", inputPackageFullName); Console.WriteLine("Waiting for removal to complete..."); opCompletedEvent.WaitOne(); if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Error) { Windows.Management.Deployment.DeploymentResult deploymentResult = deploymentOperation.GetResults(); Console.WriteLine("Removal Error: {0}", deploymentOperation.ErrorCode); Console.WriteLine("Detailed Error Text: {0}", deploymentResult.ErrorText); returnValue = 1; } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Canceled) { Console.WriteLine("Removal Canceled"); } else if (deploymentOperation.Status == Windows.Foundation.AsyncStatus.Completed) { Console.WriteLine("Removal succeeded!"); } else { returnValue = 1; Console.WriteLine("Removal status unknown"); } } catch (Exception ex) { Console.WriteLine("RemovePackageSample failed, error message: {0}", ex.Message); Console.WriteLine("Full Stacktrace: {0}", ex.ToString()); return(1); } return(returnValue); }