protected bool Equals(Candidate other)
{
if (other == null) return false;
return
string.Equals(RelativePath, other.RelativePath) &&
string.Equals(Name, other.Name) &&
string.Equals(Summary, other.Summary) &&
string.Equals(Category, other.Category) &&
Equals(Version, other.Version) &&
Architecture == other.Architecture &&
NeedsTerminal == other.NeedsTerminal;
}