If OptionsLayout.StoreAllOptions == true and OptionsLayout.LayoutVersion is set to non empty string
LayoutUpgrade event called even if no layout upgrade is performed (versions match) because LayoutVersion seems to be reset together with other properties just before deserializing a layout.
This is unexpected behaviour, see https://documentation.devexpress.com/WindowsForms/2383/Common-Features/Save-and-Restore-Layouts/Upgrading-Layout- " Note that the LayoutUpgrade event fires only if versions of the layout being loaded and the current control's layout do not match"
I suppose the same problem may have e.g. XtraGrid