I learned this the hard way
Functionality from newer versions of Eto which shipped after 2.7.1. One example below. Each time I encounter one of these issues, I end up backporting the newer functionality via extension methods. But what on the surface looks like a concise method, quite often has a long list of internal dependencies which need to be copied over as well.
As I’m typing it, it occurred to me that maybe it’d be worth compiling a custom version of Eto with a different namespace, and use it as an external library to handle only the missing parts while keeping 2.7.1 for the default interactions.