Hello,
In our development environment we have recently installed Studio 2021 SR2 for testing. Our translators still use SR1 CU4 in the production environment.
Alas, a translation memory creation module that was compiled against SR2 reference assemblies will crash when run in an environment with SR1 installed, and vice versa.
At the line where tm.LanguageResourceBundles is referenced (tm is an argument passed as ITranslationMemory2015), it throws the following exceptions:
if compiled against SR2 reference assemblies and run in an SR1 environment: | EntryPointNotFoundException - 0x80131523: Entry point was not found. at Sdl.LanguagePlatform.TranslationMemoryApi.ISupportPlaceables.get_LanguageResourceBundles() |
if compiled against SR1 reference assemblies and run in an SR2 environment: | MissingMethodException - 0x80131513: Method not found: 'Sdl.LanguagePlatform.TranslationMemoryApi.LanguageResourceBundleCollection Sdl.LanguagePlatform.TranslationMemoryApi.ITranslationMemory.get_LanguageResourceBundles()'. |
My questions:
- Is this change in the API entry point structure intentional or a bug? I don't remember seeing any warning about this incompatibility in the SR2 release notes.
- If it is a bug, will it be hotfixed in any upcoming Studio update?
- Is there a way (besides having two versions of the module, checking for the installed Studio version and dynamically redirecting to the relevant version of the module) to avoid these exceptions? Soon when our translators will need to migrate to SR2 or later, there will be an interim period where SR2 will have been deployed for some of them while others will still use SR1 - and the helper modules will need to work for both groups.
Thank you,
Attila
further typos corrected
[edited by: Attila Grozli-Nagy at 6:38 PM (GMT 0) on 14 Dec 2021]