What Changed
For security reasons, our custom skin assembly format has been modified. Information previously serialized into resource files using BinaryFormatter is now serialized in a secure manner, eliminating the need for BinaryFormatter
.
C#// If the custom skin is based on a template skin from the "BonusSkins" library, you should first use the BonusSkins.Register method to register the template skin.
// DevExpress.UserSkins.BonusSkins.Register();
Assembly asm = typeof(DevExpress.UserSkins.MyCustomSkins).Assembly;
WindowsFormsSettings.RegisterUserSkins(asm);
Assemblies with custom skins are no longer loaded (a diagnostic exception is thrown internally).
Reasons for Change
Because of .NET 9, we no longer support custom skins with embedded binary resources, as this requires a BinaryFormatter
implementation.
Impact on Existing Apps
This change affects custom skins created with the DevExpress Skin Editor. Assemblies with custom skins are no longer loaded.
How to Update Existing Apps
To update a DevExpress-powered WinForms application based on a custom skin, you must:
- Open your custom skin in the DevExpress Skin Editor. Invoke the main menu and launch the Project Manager:
- Go to the Export tab and click Create Assembly to generate a .dll file containing your project, including skins. The Project Manager saves the file in the new format within the project's root folder.
How to Revert to Previous Behavior
It is not possible to revert to the previous behavior. You should update assemblies with custom skins in the DevExpress Skin Editor.
Note: You can also use BLOB Skins:
C#var skinCreator = new SkinBlobXmlCreator(
"My Custom Skin", //Skin name
"MyApp1.CustomSkins", //Relative path to .blob and .xml files
typeof(Program).Assembly, null);
SkinManager.Default.RegisterSkin(skinCreator);