Пример #1
0
 public Task <bool> AddPackageAsync(Uri packageLocation, IEnumerable <Uri> dependencyPaths, Presenter.Progress.ProgressPresenter progressPresenter)
 {
     return(Task.Factory.StartNew <bool>(() =>
     {
         bool success = false;
         try
         {
             if (packageLocation != null && progressPresenter != null)
             {
                 progressPresenter.SetDetailsText(true, "Adding package {0}", packageLocation.AbsolutePath);
                 if (dependencyPaths != null && dependencyPaths.Any())
                 {
                     var pathsAsText = String.Join(System.Environment.NewLine, dependencyPaths);
                     progressPresenter.SetDetailsText(true, "Will add dependencies:{0}{1}", Environment.NewLine, pathsAsText);
                 }
                 if (File.Exists(packageLocation.AbsolutePath))
                 {
                     var packageManager = new Windows.Management.Deployment.PackageManager();
                     var deploymentTask = packageManager.AddPackageAsync(packageLocation, dependencyPaths, Windows.Management.Deployment.DeploymentOptions.None);
                     success = UpdateProgressForDeploymentTask(progressPresenter, deploymentTask);
                     //packageManager.RegisterPackageAsync(
                 }
                 else
                 {
                     progressPresenter.SetDetailsText(true, "{0} does not exist.", packageLocation);
                 }
             }
             else
             {
                 progressPresenter.SetDetailsText(true, "Null parameters");
             }
         }
         catch (Exception ex)
         {
             Logger.Log(ex, "Add appx package");
             progressPresenter.SetDetailsText(true, "AddPackageAsync failed, error message: {0}", ex.Message);
             progressPresenter.SetDetailsText(true, "Full Stacktrace: {0}", ex.ToString());
         }
         return success;
     }));
 }