NetSparkle is a C# cross-platform software update framework for .NET developers compatible with .NET 4.6.2/.NET 6+, WinForms, WPF, and Avalonia; uses Ed25519 or DSA signatures! View basic usage here in the README or visit our website for code docs.
We should test and make sure that users of NetSparkleUpdater can use trimming. This will allow users to save file size, but will also fix #394 and #461 by allowing the BouncyCastle dependency to be trimmed (see https://github.com/bcgit/bc-csharp/issues/422), which will drastically reduce the file size of that dependency and allow us to update that dependency to the latest version.
[ ] Add <IsTrimmable>true</IsTrimmable> to the applicable csproj files
[x] Add trimming support for the core NetSparkleUpdater library (in a quick test, this generates trim warnings for System.Text.Json. and System.Reflection.Assembly.LoadFile(String), which would need to be fixed)
We should test and make sure that users of
NetSparkleUpdater
can use trimming. This will allow users to save file size, but will also fix #394 and #461 by allowing theBouncyCastle
dependency to be trimmed (see https://github.com/bcgit/bc-csharp/issues/422), which will drastically reduce the file size of that dependency and allow us to update that dependency to the latest version.<IsTrimmable>true</IsTrimmable>
to the applicablecsproj
filesSystem.Reflection.Assembly.LoadFrom()
not being trimmable (https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities#dynamic-assembly-loading-and-execution) — can we work around this somehow? Might be able to use https://github.com/Washi1337/AsmResolver ?NetSparkleUpdater
library (in a quick test, this generates trim warnings forSystem.Text.Json.
andSystem.Reflection.Assembly.LoadFile(String)
, which would need to be fixed)BouncyCastle
/etc. are actually trimmed like we would want for end usersSee also: