Incompatible Changes in the Resto.Framework Library
The mechanism for searching and loading localized strings has been removed from the Resto.Framework.dll library. Although this library is not part of the SyrveFront API, some plugins may have used it, and they may stop working when updating the SyrveFront application.
Resto.Framework.dll, like other files of the SyrveFront application, is an internal detail of its implementation and may change or be removed entirely in any version of SyrveFront without notice. No xml documentation file is published for this library, there is no chm help file, and backward compatibility is not guaranteed. Plugins should not rely on this library in any way.
Unfortunately, there was some confusion and even provocation to use this library — as part of the SDK, it was published not as ThirdParty, but in the Syrve subfolder, and the SyrveFront API up to version V4 and example plugins from the SDK used Resto.Framework.dll in one way or another, encouraging plugin developers to do the same. The API version V5 will not reference this library, and in the SDK starting from version 5.2, this library will only be published in the V3 and V4 subfolders.
The removal of the localization mechanism from Resto.Framework.dll is not the first and will not be the last change that can disrupt the operation of plugins that used undocumented features of this library. Moreover, until the API version V5 is fixed, even new plugins that complement checks with their own markup will have to use tags from Resto.Framework.Common.Print.Tags, since V3 and V4 do not contain an alternative, and only after switching to API V5 will they be able to switch to Resto.Front.Api.V5.Data.Cheques.Tags. In cases where a plugin historically or necessarily uses the Resto.Framework.dll library, it is recommended to treat it as a third-party component and install the exact version of the file that the plugin was built with in the plugin folder. To do this, it is necessary to determine the version, find the SDK of the corresponding version, and take the Resto.Framework.dll file from there. To determine the version, you can use the free utility ILSpy.
It should be noted that before version 5.2, if there were files with the same names in the plugin folder and in the SyrveFront application folder, the file from the SyrveFront folder was loaded, so in versions prior to 5.2, it was not enough to simply place Resto.Framework.dll in the plugin folder; it was also necessary to register the AppDomain.AssemblyResolve handler in the plugin code and manually load the file from the plugin folder. Starting from 5.2, preference will be given to the file from the plugin folder; more details on this can be found in a separate article.