public async Task <bool> HasMissingPackages(IMonoDevelopSolutionManager solutionManager) { PackageIdentity packageIdentity = await GetNuGetBuildPackagingPackage(); if (packageIdentity == null) { return(false); } return(GlobalPackagesExtractor.IsMissing(solutionManager, packageIdentity)); }
public async Task <bool> HasMissingPackages(IMonoDevelopSolutionManager solutionManager) { PackageIdentity packageIdentity = await GetNuGetBuildPackagingPackage(); if (packageIdentity == null) { return(false); } if (GlobalPackagesExtractor.IsMissing(solutionManager, packageIdentity)) { return(true); } // This will trigger a restore if the generated MSBuild files are missing. return(!GeneratedNuGetMSBuildFilesExist()); }
public async Task RestorePackagesAsync( IMonoDevelopSolutionManager solutionManager, INuGetProjectContext context, CancellationToken token) { PackageIdentity packageIdentity = await GetNuGetBuildPackagingPackage(); if (packageIdentity == null) { return; } await GlobalPackagesExtractor.Download(solutionManager, packageIdentity, context, token); await Runtime.RunInMainThread(() => { PackagingNuGetProject.GenerateNuGetBuildPackagingTargets(packageIdentity, this); ReloadProjectBuilder(); }); }
public override async Task <bool> InstallPackageAsync( PackageIdentity packageIdentity, DownloadResourceResult downloadResourceResult, INuGetProjectContext nuGetProjectContext, CancellationToken token) { return(await Runtime.RunInMainThread(async() => { // Check if this NuGet package is already installed and should be removed. ProjectPackageReference existingPackageReference = project.FindPackageReference(packageIdentity); if (existingPackageReference != null) { if (ShouldRemoveExistingPackageReference(existingPackageReference, packageIdentity)) { project.PackageReferences.Remove(existingPackageReference); } else { nuGetProjectContext.Log( MessageLevel.Info, GettextCatalog.GetString("Package '{0}' already installed.", packageIdentity)); return true; } } bool developmentDependency = false; if (IsNuGetBuildPackagingPackage(packageIdentity)) { await GlobalPackagesExtractor.Extract(project.ParentSolution, packageIdentity, downloadResourceResult, token); developmentDependency = true; GenerateNuGetBuildPackagingTargets(packageIdentity); } var packageReference = ProjectPackageReference.Create(packageIdentity); if (developmentDependency) { packageReference.Metadata.SetValue("PrivateAssets", "All"); } project.PackageReferences.Add(packageReference); await SaveProject(); return true; })); }