Esempio n. 1
0
        public async Task <bool> HasMissingPackages(IMonoDevelopSolutionManager solutionManager)
        {
            PackageIdentity packageIdentity = await GetNuGetBuildPackagingPackage();

            if (packageIdentity == null)
            {
                return(false);
            }

            return(GlobalPackagesExtractor.IsMissing(solutionManager, packageIdentity));
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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;
            }));
        }