public static bool CanRestorePackages(this DotNetProject project)
        {
            var nugetAwareProject = project as INuGetAwareProject;

            if (nugetAwareProject != null)
            {
                return(nugetAwareProject.HasPackages());
            }

            return(HasPackages(project.BaseDirectory, project.Name) ||
                   DotNetCoreNuGetProject.CanCreate(project) ||
                   PackageReferenceNuGetProject.CanCreate(project));
        }
        public NuGetProject CreateNuGetProject(DotNetProject project, INuGetProjectContext context)
        {
            Runtime.AssertMainThread();

            var nugetAwareProject = project as INuGetAwareProject;

            if (nugetAwareProject != null)
            {
                return(nugetAwareProject.CreateNuGetProject());
            }

            NuGetProject dotNetCoreProject = DotNetCoreNuGetProject.Create(project);

            if (dotNetCoreProject != null)
            {
                return(dotNetCoreProject);
            }

            NuGetProject packageReferenceProject = PackageReferenceNuGetProject.Create(project);

            if (packageReferenceProject != null)
            {
                return(packageReferenceProject);
            }

            var projectSystem = new MonoDevelopMSBuildNuGetProjectSystem(project, context);

            string projectJsonPath = ProjectJsonPathUtilities.GetProjectConfigPath(project.BaseDirectory, project.Name);

            if (File.Exists(projectJsonPath))
            {
                return(new ProjectJsonBuildIntegratedProjectSystem(
                           projectJsonPath,
                           project.FileName,
                           project,
                           projectSystem,
                           project.Name,
                           settings));
            }

            string baseDirectory = GetBaseDirectory(project);
            string folderNuGetProjectFullPath = PackagesFolderPathUtility.GetPackagesFolderPath(baseDirectory, settings);

            string packagesConfigFolderPath = project.BaseDirectory;

            return(new MSBuildNuGetProject(
                       projectSystem,
                       folderNuGetProjectFullPath,
                       packagesConfigFolderPath));
        }
Пример #3
0
 protected override Task <TargetEvaluationResult> OnRunTarget(ProgressMonitor monitor, string target, ConfigurationSelector configuration, TargetEvaluationContext context)
 {
     if (Project is DotNetProject dotNetProject && IsCoreCompileDependsOn(target, context))
     {
         if (DotNetCoreNuGetProject.CanCreate(dotNetProject))
         {
             return(OnRunDotNetCoreProjectTarget(monitor, target, configuration, context));
         }
         else if (PackageReferenceNuGetProject.CanCreate(dotNetProject))
         {
             return(OnRunPackageReferenceProjectTarget(monitor, target, configuration, context));
         }
     }
     return(base.OnRunTarget(monitor, target, configuration, context));
 }
 void ProjectTargetFrameworkChanged(object sender, ProjectTargetFrameworkChangedEventArgs e)
 {
     if (e.Project.HasPackagesConfig())
     {
         var runner = new PackageCompatibilityRunner(e.Project);
         runner.Run();
     }
     else if (DotNetCoreNuGetProject.CanCreate(e.Project.DotNetProject))
     {
         // Ignore - .NET Core project target framework changes are handled
         // by the DotNetCoreProjectExtension.
     }
     else if (PackageReferenceNuGetProject.CanCreate(e.Project.DotNetProject))
     {
         RestorePackagesInProjectHandler.Run(e.Project.DotNetProject);
     }
 }