Skip to content

Runtime and assembly issues #103

@BinToss

Description

@BinToss

Issues

NOTES

  • "RID" refers to a unique combination of OS and CPU architecture. See .NET RID Catalog.

File Size

Updates should be lightweight and have as few files as possible.

  • HXE.exe from release 2.1.4 is 128 MiB. If it targeted .NET 6 and used EnableCompressionInSingleFile, it would have been closer to 64 MiB which is still large for a console app with two WPF windows.
  • Our GUIs rely on WPF. ~20MiB per RID. Windows-only.
  • DotNet SingleFile wraps our app and assemblies with SingleFileHost as the entry assembly. ~10MiB per RID. One app per RID.
  • Our dependencies include localizations we don't need since we only support English. These localizations add ~20 MiB (uncompressed) to HXE.exe.

WPF is trim-incompatible

Rampant usage of Reflection and dynamic references e.g. getting a type name from a string.

SingleFile

  • https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file
  • Making a SingleFile app also requires selecting a specific runtime. We have to use the .NET 5+ SingleFile feature since I couldn't get Fody Weavers working after porting the projects to .NET 5+. The SingleFile host adds an additional 10MiB to executable.
  • A SingleFile is heavy. A Self-Contained SingleFile is even heavier.

SingleFile + Win7

XML Serialization is discouraged in favor of System.Text.Json for trim compatibility

XML serialization depends on Reflection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions