public bool Equals(ProjectRestoreMetadata other) { if (other == null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(ProjectStyle == other.ProjectStyle && PathUtility.GetStringComparerBasedOnOS().Equals(ProjectPath, other.ProjectPath) && PathUtility.GetStringComparerBasedOnOS().Equals(ProjectJsonPath, other.ProjectJsonPath) && PathUtility.GetStringComparerBasedOnOS().Equals(OutputPath, other.OutputPath) && PathUtility.GetStringComparerBasedOnOS().Equals(ProjectName, other.ProjectName) && PathUtility.GetStringComparerBasedOnOS().Equals(ProjectUniqueName, other.ProjectUniqueName) && Sources.OrderedEquals(other.Sources.Distinct(), source => source.Source, StringComparer.OrdinalIgnoreCase) && PathUtility.GetStringComparerBasedOnOS().Equals(PackagesPath, other.PackagesPath) && ConfigFilePaths.OrderedEquals(other.ConfigFilePaths, filePath => filePath, PathUtility.GetStringComparerBasedOnOS(), PathUtility.GetStringComparerBasedOnOS()) && FallbackFolders.OrderedEquals(other.FallbackFolders, fallbackFolder => fallbackFolder, PathUtility.GetStringComparerBasedOnOS(), PathUtility.GetStringComparerBasedOnOS()) && EqualityUtility.OrderedEquals(TargetFrameworks, other.TargetFrameworks, dep => dep.TargetAlias, StringComparer.OrdinalIgnoreCase) && OriginalTargetFrameworks.OrderedEquals(other.OriginalTargetFrameworks, fw => fw, StringComparer.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase) && CrossTargeting == other.CrossTargeting && LegacyPackagesDirectory == other.LegacyPackagesDirectory && ValidateRuntimeAssets == other.ValidateRuntimeAssets && SkipContentFileWrite == other.SkipContentFileWrite && EqualityUtility.SequenceEqualWithNullCheck(Files, other.Files) && EqualityUtility.EqualsWithNullCheck(ProjectWideWarningProperties, other.ProjectWideWarningProperties) && EqualityUtility.EqualsWithNullCheck(RestoreLockProperties, other.RestoreLockProperties) && EqualityUtility.EqualsWithNullCheck(CentralPackageVersionsEnabled, other.CentralPackageVersionsEnabled) && EqualityUtility.EqualsWithNullCheck(CentralPackageVersionOverrideDisabled, other.CentralPackageVersionOverrideDisabled) && EqualityUtility.EqualsWithNullCheck(CentralPackageTransitivePinningEnabled, other.CentralPackageTransitivePinningEnabled)); }
private static void ValidateProjectSpecPackageReference(PackageSpec spec, IEnumerable <string> files) { // Verify frameworks ValidateFrameworks(spec, files); // NETCore may not specify a project.json file if (!string.IsNullOrEmpty(spec.RestoreMetadata.ProjectJsonPath)) { var message = string.Format( CultureInfo.CurrentCulture, Strings.PropertyNotAllowedForProjectType, nameof(spec.RestoreMetadata.ProjectJsonPath), ProjectStyle.PackageReference.ToString()); throw RestoreSpecException.Create(message, files); } // Output path must be set for netcore if (string.IsNullOrEmpty(spec.RestoreMetadata.OutputPath)) { var message = string.Format( CultureInfo.CurrentCulture, Strings.MissingRequiredPropertyForProjectType, nameof(spec.RestoreMetadata.OutputPath), ProjectStyle.PackageReference.ToString()); throw RestoreSpecException.Create(message, files); } // Original frameworks must be set for netcore if (spec.RestoreMetadata.OriginalTargetFrameworks.Count < 1) { var message = string.Format( CultureInfo.CurrentCulture, Strings.MissingRequiredPropertyForProjectType, nameof(spec.RestoreMetadata.OriginalTargetFrameworks), ProjectStyle.PackageReference.ToString()); throw RestoreSpecException.Create(message, files); } //OriginalTargetFrameworks must match the aliases. if (spec.RestoreMetadata.TargetFrameworks.Count > 1) { var aliases = spec.TargetFrameworks.Select(e => e.TargetAlias); if (!EqualityUtility.OrderedEquals(aliases, spec.RestoreMetadata.OriginalTargetFrameworks, e => e, StringComparer.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase)) { var message = string.Format( CultureInfo.CurrentCulture, Strings.SpecValidation_OriginalTargetFrameworksMustMatchAliases, string.Join(";", spec.RestoreMetadata.OriginalTargetFrameworks), string.Join(";", aliases) ); throw RestoreSpecException.Create(message, files); } } }
public bool Equals(WarningPropertiesCollection other) { if (other == null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(EqualityUtility.EqualsWithNullCheck(ProjectWideWarningProperties, other.ProjectWideWarningProperties) && EqualityUtility.EqualsWithNullCheck(PackageSpecificWarningProperties, other.PackageSpecificWarningProperties) && EqualityUtility.OrderedEquals(ProjectFrameworks, other.ProjectFrameworks, (fx) => fx.Framework, orderComparer: StringComparer.OrdinalIgnoreCase, sequenceComparer: new NuGetFrameworkFullComparer())); }
public bool Equals(CentralTransitiveDependencyGroup other) { if (other == null) { return(false); } if (Object.ReferenceEquals(this, other)) { return(true); } if (string.Equals(FrameworkName, other.FrameworkName, StringComparison.OrdinalIgnoreCase)) { return(EqualityUtility.OrderedEquals(TransitiveDependencies, other.TransitiveDependencies, dep => dep.Name, StringComparer.OrdinalIgnoreCase)); } return(false); }
public bool Equals(TargetFrameworkInformation other) { if (other == null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(EqualityUtility.EqualsWithNullCheck(FrameworkName, other.FrameworkName) && EqualityUtility.OrderedEquals(Dependencies, other.Dependencies, dependency => dependency.Name, StringComparer.OrdinalIgnoreCase) && Imports.SequenceEqualWithNullCheck(other.Imports) && Warn == other.Warn && AssetTargetFallback == other.AssetTargetFallback && EqualityUtility.OrderedEquals(DownloadDependencies, other.DownloadDependencies, e => e.Name, StringComparer.OrdinalIgnoreCase) && EqualityUtility.OrderedEquals(FrameworkReferences, other.FrameworkReferences, e => e.Name, ComparisonUtility.FrameworkReferenceNameComparer) && EqualityUtility.OrderedEquals(CentralPackageVersions.Values, other.CentralPackageVersions.Values, e => e.Name, StringComparer.OrdinalIgnoreCase) && PathUtility.GetStringComparerBasedOnOS().Equals(RuntimeIdentifierGraphPath, other.RuntimeIdentifierGraphPath) && StringComparer.OrdinalIgnoreCase.Equals(TargetAlias, other.TargetAlias)); }