/// <summary> /// Creates project restore info object to be consumed by <see cref="IVsSolutionRestoreService"/>. /// </summary> /// <param name="packageSpec">Source project restore object</param> /// <returns>Desired project restore object</returns> public static ProjectRestoreInfoBuilder FromPackageSpec( PackageSpec packageSpec, string baseIntermediatePath, bool crossTargeting) { if (packageSpec == null) { throw new ArgumentNullException(nameof(packageSpec)); } if (packageSpec.TargetFrameworks == null) { return(null); } var projectProperties = new VsProjectProperties { }; if (packageSpec.Version != null) { projectProperties = new VsProjectProperties { { "PackageVersion", packageSpec.Version.ToString() } }; } var targetFrameworks = new VsTargetFrameworks( packageSpec .TargetFrameworks .Select(tfm => ToTargetFrameworkInfo(tfm, projectProperties))); var targetFrameworks2 = new VsTargetFrameworks2( packageSpec .TargetFrameworks .Select(tfm => ToTargetFrameworkInfo2(tfm, projectProperties))); var pri = new VsProjectRestoreInfo( baseIntermediatePath, targetFrameworks); var pri2 = new VsProjectRestoreInfo2( baseIntermediatePath, targetFrameworks2); if (crossTargeting) { pri.OriginalTargetFrameworks = string.Join(";", packageSpec .TargetFrameworks .Select(tfm => tfm.FrameworkName.GetShortFolderName())); } return(new ProjectRestoreInfoBuilder(pri, pri2)); }
private ProjectRestoreInfoBuilder(VsProjectRestoreInfo pri, VsProjectRestoreInfo2 pri2) { _projectRestoreInfo = pri; _projectRestoreInfo2 = pri2; }
private ProjectRestoreInfoBuilder(VsProjectRestoreInfo pri) { _pri = pri; }