public ProjectRestoreInfoBuilder WithTargetFrameworkInfo( IVsTargetFrameworkInfo tfi) { (_pri.TargetFrameworks as VsTargetFrameworks).Add(tfi); return(this); }
private static TargetFrameworkInformation ToTargetFrameworkInformation( IVsTargetFrameworkInfo targetFrameworkInfo) { var tfi = new TargetFrameworkInformation { FrameworkName = NuGetFramework.Parse(targetFrameworkInfo.TargetFrameworkMoniker) }; var ptf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, PackageTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); var atf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, AssetTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); // Update TFI with fallback properties AssetTargetFallbackUtility.ApplyFramework(tfi, ptf, atf); if (targetFrameworkInfo.PackageReferences != null) { tfi.Dependencies.AddRange( targetFrameworkInfo.PackageReferences .Cast <IVsReferenceItem>() .Select(ToPackageLibraryDependency)); } return(tfi); }
private static TargetFrameworkInformation ToTargetFrameworkInformation( IVsTargetFrameworkInfo targetFrameworkInfo) { var tfi = new TargetFrameworkInformation { FrameworkName = NuGetFramework.Parse(targetFrameworkInfo.TargetFrameworkMoniker) }; var ptf = GetPropertyValueOrNull(targetFrameworkInfo.Properties, PackageTargetFallback); if (!string.IsNullOrEmpty(ptf)) { var fallbackList = MSBuildStringUtility.Split(ptf) .Select(NuGetFramework.Parse) .ToList(); tfi.Imports = fallbackList; // Update the PackageSpec framework to include fallback frameworks if (tfi.Imports.Count != 0) { tfi.FrameworkName = new FallbackFramework(tfi.FrameworkName, fallbackList); } } if (targetFrameworkInfo.PackageReferences != null) { tfi.Dependencies.AddRange( targetFrameworkInfo.PackageReferences .Cast <IVsReferenceItem>() .Select(ToPackageLibraryDependency)); } return(tfi); }
private static void LogTargetFramework(IProjectLoggerBatch logger, IVsTargetFrameworkInfo targetFrameworkInfo) { logger.WriteLine(targetFrameworkInfo.TargetFrameworkMoniker); logger.IndentLevel++; LogReferenceItems(logger, "Project References", targetFrameworkInfo.ProjectReferences); LogReferenceItems(logger, "Package References", targetFrameworkInfo.PackageReferences); LogProperties(logger, "Target Framework Properties", targetFrameworkInfo.Properties); logger.IndentLevel--; }
public ProjectRestoreInfoBuilder WithTargetFrameworkInfo( IVsTargetFrameworkInfo tfi) { if (_projectRestoreInfo.TargetFrameworks is VsTargetFrameworks vsTargetFrameworks && tfi is VsTargetFrameworkInfo) { vsTargetFrameworks.Add(tfi); } if (_projectRestoreInfo2.TargetFrameworks is VsTargetFrameworks2 vsTargetFrameworks2 && tfi is VsTargetFrameworkInfo2) { vsTargetFrameworks2.Add((IVsTargetFrameworkInfo2)tfi); } return(this); }
internal static TargetFrameworkInformation ToTargetFrameworkInformation( IVsTargetFrameworkInfo targetFrameworkInfo) { var tfi = new TargetFrameworkInformation { FrameworkName = NuGetFramework.Parse(targetFrameworkInfo.TargetFrameworkMoniker) }; var ptf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.PackageTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); var atf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.AssetTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); // Update TFI with fallback properties AssetTargetFallbackUtility.ApplyFramework(tfi, ptf, atf); tfi.RuntimeIdentifierGraphPath = GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.RuntimeIdentifierGraphPath); if (targetFrameworkInfo.PackageReferences != null) { tfi.Dependencies.AddRange( targetFrameworkInfo.PackageReferences .Cast <IVsReferenceItem>() .Select(ToPackageLibraryDependency)); } if (targetFrameworkInfo is IVsTargetFrameworkInfo2 targetFrameworkInfo2) { if (targetFrameworkInfo2.PackageDownloads != null) { tfi.DownloadDependencies.AddRange( targetFrameworkInfo2.PackageDownloads .Cast <IVsReferenceItem>() .Select(ToPackageDownloadDependency)); } if (targetFrameworkInfo2.FrameworkReferences != null) { PopulateFrameworkDependencies(tfi, targetFrameworkInfo2); } } return(tfi); }
private IVsTargetFrameworks GetAllTargetFrameworks(IEnumerable <ProjectRestoreUpdate> updates) { var frameworks = new List <IVsTargetFrameworkInfo>(); foreach (ProjectRestoreUpdate update in updates) { Assumes.True(update.RestoreInfo.TargetFrameworks.Count == 1); IVsTargetFrameworkInfo framework = update.RestoreInfo.TargetFrameworks.Item(0); if (ValidateTargetFramework(update.ProjectConfiguration, framework)) { frameworks.Add(framework); } } return(new TargetFrameworks(frameworks)); }
private static ProjectRestoreMetadataFrameworkInfo ToProjectRestoreMetadataFrameworkInfo( IVsTargetFrameworkInfo targetFrameworkInfo, string projectDirectory) { var tfi = new ProjectRestoreMetadataFrameworkInfo { FrameworkName = NuGetFramework.Parse(targetFrameworkInfo.TargetFrameworkMoniker) }; if (targetFrameworkInfo.ProjectReferences != null) { tfi.ProjectReferences.AddRange( targetFrameworkInfo.ProjectReferences .Cast <IVsReferenceItem>() .Select(item => ToProjectRestoreReference(item, projectDirectory))); } return(tfi); }
internal static ProjectRestoreMetadataFrameworkInfo ToProjectRestoreMetadataFrameworkInfo( IVsTargetFrameworkInfo targetFrameworkInfo, string projectDirectory, string projectFullPath) { var tfi = new ProjectRestoreMetadataFrameworkInfo { FrameworkName = GetTargetFramework(targetFrameworkInfo.Properties, projectFullPath), TargetAlias = GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.TargetFramework) }; if (targetFrameworkInfo.ProjectReferences != null) { tfi.ProjectReferences.AddRange( targetFrameworkInfo.ProjectReferences .Cast <IVsReferenceItem>() .Where(IsReferenceOutputAssemblyTrueOrEmpty) .Select(item => ToProjectRestoreReference(item, projectDirectory))); } return(tfi); }
internal static TargetFrameworkInformation ToTargetFrameworkInformation( IVsTargetFrameworkInfo targetFrameworkInfo, bool cpvmEnabled, string projectFullPath) { var tfi = new TargetFrameworkInformation { FrameworkName = GetTargetFramework(targetFrameworkInfo.Properties, projectFullPath), TargetAlias = GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.TargetFramework) }; var ptf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.PackageTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); var atf = MSBuildStringUtility.Split(GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.AssetTargetFallback)) .Select(NuGetFramework.Parse) .ToList(); // Update TFI with fallback properties AssetTargetFallbackUtility.ApplyFramework(tfi, ptf, atf); tfi.RuntimeIdentifierGraphPath = GetPropertyValueOrNull(targetFrameworkInfo.Properties, ProjectBuildProperties.RuntimeIdentifierGraphPath); if (targetFrameworkInfo.PackageReferences != null) { tfi.Dependencies.AddRange( targetFrameworkInfo.PackageReferences .Cast <IVsReferenceItem>() .Select(pr => ToPackageLibraryDependency(pr, cpvmEnabled))); } if (targetFrameworkInfo is IVsTargetFrameworkInfo2 targetFrameworkInfo2) { if (targetFrameworkInfo2.PackageDownloads != null) { tfi.DownloadDependencies.AddRange( targetFrameworkInfo2.PackageDownloads .Cast <IVsReferenceItem>() .Select(ToPackageDownloadDependency)); } if (cpvmEnabled && targetFrameworkInfo is IVsTargetFrameworkInfo3 targetFrameworkInfo3) { if (targetFrameworkInfo3.CentralPackageVersions != null) { tfi.CentralPackageVersions.AddRange( targetFrameworkInfo3.CentralPackageVersions .Cast <IVsReferenceItem>() .Select(ToCentralPackageVersion) .Distinct(CentralPackageVersionNameComparer.Default) .ToDictionary(cpv => cpv.Name)); } } if (targetFrameworkInfo2.FrameworkReferences != null) { PopulateFrameworkDependencies(tfi, targetFrameworkInfo2); } } return(tfi); }
private bool ValidateTargetFramework(ProjectConfiguration projectConfiguration, IVsTargetFrameworkInfo framework) { if (framework.TargetFrameworkMoniker.Length == 0) { ReportDataSourceUserFault( new Exception(string.Format(CultureInfo.CurrentCulture, VSResources.Restore_EmptyTargetFrameworkMoniker, projectConfiguration.Name)), ProjectFaultSeverity.LimitedFunctionality, ContainingProject); return(false); } return(true); }