Inheritance: IDeploymentResult
示例#1
0
        //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);
            };
        }
示例#2
0
        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);
        }
示例#3
0
    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);
    }