Yesterday I posted a quick tip, which quickly got some comments about it being wrong. Since I know people who commented were unlikely to say something incorrect, I went to check on, because I myself experienced difficulties that made me write that post.
So, I analyzed to see who’s right and who’s wrong, or better yet – to see why different people might get different results.
Here’s the results.
So, I stand corrected. What I wrote is not completely true. Depending on what exactly your control does, my post’s accuracy ranges from absolutely wrong, to somewhat wrong, to true. So, here’s the thing.
However, backward compatibility does not work. Controls built for 2015, won’t work in 2013 R2, 2013, 2009 R2, or 2009 SP1. Likewise, controls built for 2013 R2, won’t work in 2013, 2009 R2, or 2009 SP1. Also, controls built for 2013, won’t work in 2009 R2, or 2009 SP1.
The only version which is fully backwards compatible is 2009 R2. Controls built for 2009 R2 will work with 2009 SP1.
The reason for this is simple, 2009 SP1 and 2009 R2 use the same assembly version (220.127.116.11) whereas all newer versions declare a new assembly version (18.104.22.168, 22.214.171.124, and 126.96.36.199 respectively). Now, maybe there are some tricks that may make even this work, but I didn’t manage to figure them out. I attempted copying the newer version of assemblies together with the control add-in assemblies, but it didn’t make any difference either.
So, insofar as backward compatibility is concerned, my original post is correct. However, when forward compatibility is concerned, my post is wrong.
Thanks to Johannes and Mark for pointing out the issue.