Easing plugin dependency version maintenance via assembly binding retargeting

Hello,

I wanted to ask your opinion if it would be feasible to automatically retarget the plugin dependencies to the actual versions (as long as there weren't any breaking changes). Let me share a bit more context on where I encountered this:

The 2024 CU2 release of Trados Studio used updated versions of the MS WebView2 assembly. Since our plugin was compiled against a specific version of WebView2 (the one shipped with Trados 2024), this naturally resulted in a plugin load failure. But WebView2 itself is backwards compatible: using a newer assembly while compiling against an older assembly's API works by contract. So ideally, our plugin would keep working without having to recompile against the new assembly versions.

This should be possible to achieve using the assembly binding retargeting feature of .NET - for example, memoQ has this retargeting config next to its executable, and upgrades all interface assembly version bindings to use the shipped version. This way plugins don't need to be recompiled for successive releases.

As for Trados, it might be possible for the retargeting to affect the API assemblies too, or any assembly where compatibility was not broken. So plugin maintenance could become easier, and recompilation would only be needed in case of a genuine breakage of the API.

What do you think, is this a suitable idea for sometime in the future?

BR,
Robin

emoji