public bool IsSatisfied(Version version) { bool satisfied = _comparators.All(c => c.IsSatisfied(version)); if (version.PreRelease != null) { // If the version is a pre-release, then one of the // comparators must have the same version and also include // a pre-release tag. return satisfied && _comparators.Any(c => c.Version.PreRelease != null && c.Version.BaseVersion() == version.BaseVersion()); } else { return satisfied; } }