Paket - проект с открытым исходным кодом. Давайте копать источник. Анализ файла paket.dependencies доступен на GitHub. Вот логика:
match splitVersion text with
| "==", version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.OverrideAll v,parsePrerelease [v] rest)
| ">=", version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.Minimum v,parsePrerelease [v] rest)
| ">", version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.GreaterThan v,parsePrerelease [v] rest)
| "<", version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.LessThan v,parsePrerelease [v] rest)
| "<=", version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.Maximum v,parsePrerelease [v] rest)
| "~>", minimum :: rest ->
let v1 = SemVer.Parse minimum
VersionRequirement(VersionRange.Between(minimum,twiddle v1),parsePrerelease [v1] rest)
| _, version :: rest ->
let v = SemVer.Parse version
VersionRequirement(VersionRange.Specific v,parsePrerelease [v] rest)
| _ -> failwithf "could not parse version range \"%s\"" text
источник
Таким образом, ==
установит VersionRange на OverrideAll
. Это повлияет на IsGlobalOverride
.
member x.IsGlobalOverride =
match x with
| OverrideAll _ -> true
| _ -> false
источник
Чтобы сделать вывод, ==
переопределит пакет в данной версии, а если нет, будет использован текущий пакет в версии givern. Это грубое понимание, пожалуйста, и любой подробный ответ рядом.