Breaking Change T1263714
Visible to All Users

Custom skin assembly format has been modified

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:

  1. Open your custom skin in the DevExpress Skin Editor. Invoke the main menu and launch the Project Manager:
    devexpress-skin-editor.png
  2. 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.
    devexpress-skin-editor-export.png

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);

See Also

Export and Apply Custom Skins

Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.